
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

char * __regparm3 dlang_value(string *decl,char *mangled,char *name,char type)

{
  int iVar1;
  ushort uVar2;
  ushort uVar3;
  byte bVar4;
  uint uVar5;
  char cVar6;
  char *pcVar7;
  uint uVar8;
  byte *pbVar9;
  byte *s;
  bool bVar10;
  string *in_stack_ffffffb4;
  char *in_stack_ffffffb8;
  char in_stack_ffffffbc;
  char type_1;
  char val;
  long elements;
  
  if ((mangled == (char *)0x0) || (type_1 = *mangled, type_1 == '\0')) goto _L224;
  switch(type_1) {
  default:
    goto _L224;
  case 'A':
    if (type == 'H') {
      pcVar7 = dlang_number(mangled + 1,&elements);
      if (pcVar7 == (char *)0x0) {
        return (char *)0x0;
      }
      string_append(decl,"[");
      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {
        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');
        string_append(decl,":");
        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');
        if (elements == 0) goto LAB_001e281e;
        string_append(decl,", ");
      }
    }
    else {
      pcVar7 = dlang_number(mangled + 1,&elements);
      if (pcVar7 == (char *)0x0) {
        return (char *)0x0;
      }
      string_append(decl,"[");
      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {
        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');
        if (elements == 0) goto LAB_001e281e;
        string_append(decl,", ");
      }
    }
    goto LAB_001e2826;
  case 'N':
    string_append(decl,"-");
    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);
    break;
  case 'S':
    pcVar7 = dlang_number(mangled + 1,&elements);
    if (pcVar7 != (char *)0x0) {
      if (name != (char *)0x0) {
        string_append(decl,name);
      }
      string_append(decl,"(");
      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {
        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');
        if (elements == 0) {
          elements = -1;
          break;
        }
        string_append(decl,", ");
      }
      string_append(decl,")");
    }
    break;
  case 'a':
  case 'd':
  case 'w':
    pcVar7 = dlang_number(mangled + 1,&elements);
    if (pcVar7 == (char *)0x0) {
      return (char *)0x0;
    }
    if (*pcVar7 == '_') {
      pbVar9 = (byte *)(pcVar7 + 1);
      string_append(decl,"\"");
      iVar1 = elements + -1;
      bVar10 = elements == 0;
      elements = iVar1;
      if (bVar10) {
LAB_001e2c6c:
        string_append(decl,"\"");
        if (type_1 == 'a') {
          return (char *)pbVar9;
        }
        string_appendn(decl,&type_1,1);
        return (char *)pbVar9;
      }
      if (pbVar9 != (byte *)0x0) {
        uVar5 = (uint)(byte)pcVar7[1];
        uVar2 = _sch_istable[uVar5];
        if ((uVar2 & 0x100) != 0) {
          uVar8 = (uint)(byte)pcVar7[2];
          uVar3 = _sch_istable[uVar8];
          if ((uVar3 & 0x100) != 0) {
            s = pbVar9;
            do {
              cVar6 = (char)uVar5 + -0x30;
              if ((uVar2 & 4) == 0) {
                cVar6 = (char)uVar5 + -0x37;
              }
              if ((uVar3 & 4) == 0) {
                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;
              }
              else {
                bVar4 = (char)uVar8 - 0x30;
              }
              val = (byte)((int)cVar6 << 4) | bVar4;
              pbVar9 = s + 2;
              if (pbVar9 == (byte *)0x0) break;
              switch((byte)val - 9 & 0xff) {
              case 0:
                string_append(decl,"\\t");
                break;
              case 1:
                string_append(decl,"\\n");
                break;
              case 2:
                string_append(decl,"\\v");
                break;
              case 3:
                string_append(decl,"\\f");
                break;
              case 4:
                string_append(decl,"\\r");
                break;
              default:
                if ((_sch_istable[(byte)val] & 0x10) == 0) {
                  string_append(decl,"\\x");
                  string_appendn(decl,(char *)s,2);
                }
                else {
                  string_appendn(decl,&val,1);
                }
                break;
              case 0x17:
                string_append(decl," ");
              }
              iVar1 = elements + -1;
              bVar10 = elements == 0;
              elements = iVar1;
              if (bVar10) goto LAB_001e2c6c;
              uVar5 = (uint)*pbVar9;
              uVar2 = _sch_istable[uVar5];
              if ((uVar2 & 0x100) == 0) break;
              uVar8 = (uint)s[3];
              uVar3 = _sch_istable[uVar8];
              s = pbVar9;
            } while ((uVar3 & 0x100) != 0);
          }
        }
      }
    }
    goto _L224;
  case 'c':
    pcVar7 = dlang_parse_real(decl,mangled + 1);
    string_append(decl,"+");
    if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {
      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);
      string_append(decl,"i");
      return pcVar7;
    }
_L224:
    pcVar7 = (char *)0x0;
    break;
  case 'e':
    pcVar7 = dlang_parse_real(decl,mangled + 1);
    break;
  case 'i':
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);
    return pcVar7;
  case 'n':
    pcVar7 = mangled + 1;
    string_append(decl,"null");
  }
  return pcVar7;
LAB_001e281e:
  elements = -1;
LAB_001e2826:
  string_append(decl,"]");
  return pcVar7;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)

{
  char cVar1;
  ushort uVar2;
  ushort uVar3;
  byte *pbVar4;
  int iVar5;
  char *pcVar6;
  uint uVar7;
  char cVar8;
  byte *pbVar9;
  uint uVar10;
  bool bVar11;
  byte bStack_21;
  int iStack_20;
  
  if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;
  switch(cVar1) {
  default:
    goto LAB_001e2790;
  case 'A':
    if (param_4 == 'H') {
      pbVar9 = (byte *)FUN_001e1d50();
      if (pbVar9 == (byte *)0x0) {
        return (byte *)0x0;
      }
      FUN_001e1e60();
      bVar11 = iStack_20 != 0;
      iStack_20 = iStack_20 + -1;
      if (bVar11) {
        do {
          FUN_001e2720(0);
          FUN_001e1e60();
          pbVar9 = (byte *)FUN_001e2720(0);
          if (iStack_20 == 0) break;
          FUN_001e1e60();
          bVar11 = iStack_20 != 0;
          iStack_20 = iStack_20 + -1;
        } while (bVar11);
      }
    }
    else {
      pbVar9 = (byte *)FUN_001e1d50();
      if (pbVar9 == (byte *)0x0) {
        return (byte *)0x0;
      }
      FUN_001e1e60();
      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {
        FUN_001e1e60();
        iStack_20 = iStack_20 + -1;
      }
    }
    FUN_001e1e60();
    break;
  case 'N':
    FUN_001e1e60();
    pbVar9 = (byte *)FUN_001e2220();
    break;
  case 'S':
    pbVar9 = (byte *)FUN_001e1d50();
    if (pbVar9 != (byte *)0x0) {
      if (param_3 != 0) {
        FUN_001e1e60();
      }
      FUN_001e1e60();
      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {
        FUN_001e1e60();
        iStack_20 = iStack_20 + -1;
      }
      FUN_001e1e60();
    }
    break;
  case 'a':
  case 'd':
  case 'w':
    pcVar6 = (char *)FUN_001e1d50();
    if (pcVar6 == (char *)0x0) {
      return (byte *)0x0;
    }
    if (*pcVar6 == '_') {
      pbVar9 = (byte *)(pcVar6 + 1);
      FUN_001e1e60();
      if (iStack_20 == 0) {
code_r0x001e2c6c:
        FUN_001e1e60();
        if (cVar1 == 'a') {
          return pbVar9;
        }
        FUN_001e21e0();
        return pbVar9;
      }
      if (pbVar9 != (byte *)0x0) {
        uVar7 = (uint)(byte)pcVar6[1];
        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);
        if ((uVar2 & 0x100) != 0) {
          uVar10 = (uint)(byte)pcVar6[2];
          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);
          pbVar4 = pbVar9;
          iVar5 = iStack_20 + -1;
          while ((uVar3 & 0x100) != 0) {
            cVar8 = (char)uVar7 + -0x30;
            if ((uVar2 & 4) == 0) {
              cVar8 = (char)uVar7 + -0x37;
            }
            if ((uVar3 & 4) == 0) {
              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;
            }
            else {
              bStack_21 = (char)uVar10 - 0x30;
            }
            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;
            pbVar9 = pbVar4 + 2;
            if (pbVar9 == (byte *)0x0) break;
            switch(bStack_21 - 9 & 0xff) {
            case 0:
              FUN_001e1e60();
              break;
            case 1:
              FUN_001e1e60();
              break;
            case 2:
              FUN_001e1e60();
              break;
            case 3:
              FUN_001e1e60();
              break;
            case 4:
              FUN_001e1e60();
              break;
            default:
              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {
                FUN_001e1e60();
                FUN_001e21e0();
              }
              else {
                FUN_001e21e0();
              }
              break;
            case 0x17:
              FUN_001e1e60();
            }
            if (iVar5 == 0) goto code_r0x001e2c6c;
            uVar7 = (uint)*pbVar9;
            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);
            if ((uVar2 & 0x100) == 0) break;
            uVar10 = (uint)pbVar4[3];
            pbVar4 = pbVar9;
            iVar5 = iVar5 + -1;
            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);
          }
        }
      }
    }
    goto LAB_001e2790;
  case 'c':
    pcVar6 = (char *)FUN_001e2520();
    FUN_001e1e60();
    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {
      pbVar9 = (byte *)FUN_001e2520();
      FUN_001e1e60();
      return pbVar9;
    }
LAB_001e2790:
    pbVar9 = (byte *)0x0;
    break;
  case 'e':
    pbVar9 = (byte *)FUN_001e2520();
    break;
  case 'i':
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    pbVar9 = (byte *)FUN_001e2220();
    return pbVar9;
  case 'n':
    pbVar9 = (byte *)(param_2 + 1);
    FUN_001e1e60();
  }
  return pbVar9;
}


PUSH EBP
PUSH EDI
PUSH ESI
CALL 0x000559ea
ADD ESI,0x1ac8d8
PUSH EBX
SUB ESP,0x3c
MOV dword ptr [ESP + 0xc],ECX
MOV EBX,dword ptr [ESP + 0x50]
TEST EDX,EDX
JZ 0x001e2790
MOVZX EDI,byte ptr [EDX]
MOV EBP,EAX
MOV EAX,EDI
TEST AL,AL
JZ 0x001e2790
LEA EAX,[EDI + -0x30]
CMP AL,0x47
JA 0x001e2790
MOVZX EAX,AL
MOV ECX,dword ptr [ESI + EAX*0x4 + 0xfff13d58]
ADD ECX,ESI
JMP ECX
XOR EBX,EBX
ADD ESP,0x3c
MOV EAX,EBX
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nbyte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)\n\n{\n  char cVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte *pbVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  char cVar8;\n  byte *pbVar9;\n  uint uVar10;\n  bool bVar11;\n  byte bStack_21;\n  int iStack_20;\n  \n  if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;\n  switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }\n  return pbVar9;\n}\n\n" comment (ERROR "byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" (binary_expression "byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" identifier (argument_list "(undefined4 param_1,char *param_2,int param_3,char param_4)" ( identifier (ERROR "param_1" identifier) , (binary_expression "char *param_2" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "char" identifier) identifier ))))) (compound_statement "{\n  char cVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte *pbVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  char cVar8;\n  byte *pbVar9;\n  uint uVar10;\n  bool bVar11;\n  byte bStack_21;\n  int iStack_20;\n  \n  if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;\n  switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }\n  return pbVar9;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "byte bStack_21;" type_identifier identifier ;) (declaration "int iStack_20;" primitive_type identifier ;) (if_statement "if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;" if (parenthesized_expression "((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0'))" ( (binary_expression "(param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')" (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(cVar1 = *param_2, cVar1 == '\0')" ( (comma_expression "cVar1 = *param_2, cVar1 == '\0'" (assignment_expression "cVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_001e2790;" goto statement_identifier ;)) (switch_statement "switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }" { (case_statement "default:\n    goto LAB_001e2790;" default : (goto_statement "goto LAB_001e2790;" goto statement_identifier ;)) (case_statement "case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;" case (char_literal "'A'" ' character ') : (if_statement "if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" if (parenthesized_expression "(param_4 == 'H')" ( (binary_expression "param_4 == 'H'" identifier == (char_literal "'H'" ' character ')) )) (compound_statement "{\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }" { (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" identifier = (cast_expression "(byte *)FUN_001e1d50()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (byte *)0x0;\n      }" { (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = iStack_20 != 0;" (assignment_expression "bVar11 = iStack_20 != 0" identifier = (binary_expression "iStack_20 != 0" identifier != number_literal)) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) (if_statement "if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }" { (do_statement "do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);" do (compound_statement "{\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        }" { (expression_statement "FUN_001e2720(0);" (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar9 = (byte *)FUN_001e2720(0);" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" identifier = (cast_expression "(byte *)FUN_001e2720(0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (if_statement "if (iStack_20 == 0) break;" if (parenthesized_expression "(iStack_20 == 0)" ( (binary_expression "iStack_20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = iStack_20 != 0;" (assignment_expression "bVar11 = iStack_20 != 0" identifier = (binary_expression "iStack_20 != 0" identifier != number_literal)) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) })) }) (else_clause "else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" else (compound_statement "{\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" { (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" identifier = (cast_expression "(byte *)FUN_001e1d50()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (byte *)0x0;\n      }" { (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (while_statement "while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" while (parenthesized_expression "((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)))" ( (parenthesized_expression "(iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))" ( (binary_expression "iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (binary_expression "iStack_20 != 0" identifier != number_literal) && (parenthesized_expression "(pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" ( (comma_expression "pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" identifier = (cast_expression "(byte *)FUN_001e2720(0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))))) , (binary_expression "iStack_20 + -1 != 0" (binary_expression "iStack_20 + -1" identifier + number_literal) != number_literal)) ))) )) )) (compound_statement "{\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) })) }))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;" case (char_literal "'N'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar9 = (byte *)FUN_001e2220();" (assignment_expression "pbVar9 = (byte *)FUN_001e2220()" identifier = (cast_expression "(byte *)FUN_001e2220()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2220()" identifier (argument_list "()" ( ))))) ;) (break_statement "break;" break ;)) (case_statement "case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" identifier = (cast_expression "(byte *)FUN_001e1d50()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }" if (parenthesized_expression "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }" { (if_statement "if (param_3 != 0) {\n        FUN_001e1e60();\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001e1e60();\n      }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (while_statement "while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" while (parenthesized_expression "((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)))" ( (parenthesized_expression "(iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))" ( (binary_expression "iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (binary_expression "iStack_20 != 0" identifier != number_literal) && (parenthesized_expression "(pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" ( (comma_expression "pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" identifier = (cast_expression "(byte *)FUN_001e2720(0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))))) , (binary_expression "iStack_20 + -1 != 0" (binary_expression "iStack_20 + -1" identifier + number_literal) != number_literal)) ))) )) )) (compound_statement "{\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 'a':" case (char_literal "'a'" ' character ') :) (case_statement "case 'd':" case (char_literal "'d'" ' character ') :) (case_statement "case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;" case (char_literal "'w'" ' character ') : (expression_statement "pcVar6 = (char *)FUN_001e1d50();" (assignment_expression "pcVar6 = (char *)FUN_001e1d50()" identifier = (cast_expression "(char *)FUN_001e1d50()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (byte *)0x0;\n    }" { (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(*pcVar6 == '_')" ( (binary_expression "*pcVar6 == '_'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }" { (expression_statement "pbVar9 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar9 = (byte *)(pcVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }" if (parenthesized_expression "(iStack_20 == 0)" ( (binary_expression "iStack_20 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }" { (labeled_statement "code_r0x001e2c6c:\n        FUN_001e1e60();" statement_identifier : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (cVar1 == 'a') {\n          return pbVar9;\n        }" if (parenthesized_expression "(cVar1 == 'a')" ( (binary_expression "cVar1 == 'a'" identifier == (char_literal "'a'" ' character ')) )) (compound_statement "{\n          return pbVar9;\n        }" { (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return pbVar9;" return identifier ;) })) (if_statement "if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }" if (parenthesized_expression "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }" { (expression_statement "uVar7 = (uint)(byte)pcVar6[1];" (assignment_expression "uVar7 = (uint)(byte)pcVar6[1]" identifier = (cast_expression "(uint)(byte)pcVar6[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar6[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar6[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);" (assignment_expression "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar7 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar7 * 2)" ( (binary_expression "&DAT_002a3600 + uVar7 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }" { (expression_statement "uVar10 = (uint)(byte)pcVar6[2];" (assignment_expression "uVar10 = (uint)(byte)pcVar6[2]" identifier = (cast_expression "(uint)(byte)pcVar6[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar6[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar6[2]" identifier [ number_literal ])))) ;) (expression_statement "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);" (assignment_expression "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar10 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar10 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar10 * 2)" ( (binary_expression "&DAT_002a3600 + uVar10 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar10 * 2" identifier * number_literal)) ))))) ;) (expression_statement "pbVar4 = pbVar9;" (assignment_expression "pbVar4 = pbVar9" identifier = identifier) ;) (expression_statement "iVar5 = iStack_20 + -1;" (assignment_expression "iVar5 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) (while_statement "while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }" while (parenthesized_expression "((uVar3 & 0x100) != 0)" ( (binary_expression "(uVar3 & 0x100) != 0" (parenthesized_expression "(uVar3 & 0x100)" ( (binary_expression "uVar3 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }" { (expression_statement "cVar8 = (char)uVar7 + -0x30;" (assignment_expression "cVar8 = (char)uVar7 + -0x30" identifier = (binary_expression "(char)uVar7 + -0x30" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              cVar8 = (char)uVar7 + -0x37;\n            }" { (expression_statement "cVar8 = (char)uVar7 + -0x37;" (assignment_expression "cVar8 = (char)uVar7 + -0x37" identifier = (binary_expression "(char)uVar7 + -0x37" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }" { (expression_statement "bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;" (assignment_expression "bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" identifier = (binary_expression "((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" (parenthesized_expression "((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U))" ( (binary_expression "(char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) - (parenthesized_expression "(-((uVar3 & 0x80) == 0) & 0x20U)" ( (binary_expression "-((uVar3 & 0x80) == 0) & 0x20U" (unary_expression "-((uVar3 & 0x80) == 0)" - (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) ))) & number_literal) ))) )) - number_literal)) ;) }) (else_clause "else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }" else (compound_statement "{\n              bStack_21 = (char)uVar10 - 0x30;\n            }" { (expression_statement "bStack_21 = (char)uVar10 - 0x30;" (assignment_expression "bStack_21 = (char)uVar10 - 0x30" identifier = (binary_expression "(char)uVar10 - 0x30" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) - number_literal)) ;) }))) (expression_statement "bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;" (assignment_expression "bStack_21 = (byte)((int)cVar8 << 4) | bStack_21" identifier = (binary_expression "(byte)((int)cVar8 << 4) | bStack_21" (call_expression "(byte)((int)cVar8 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)cVar8 << 4)" ( (binary_expression "(int)cVar8 << 4" (cast_expression "(int)cVar8" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) | identifier)) ;) (expression_statement "pbVar9 = pbVar4 + 2;" (assignment_expression "pbVar9 = pbVar4 + 2" identifier = (binary_expression "pbVar4 + 2" identifier + number_literal)) ;) (if_statement "if (pbVar9 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (switch_statement "switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }" switch (parenthesized_expression "(bStack_21 - 9 & 0xff)" ( (binary_expression "bStack_21 - 9 & 0xff" (binary_expression "bStack_21 - 9" identifier - number_literal) & number_literal) )) (compound_statement "{\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }" { (case_statement "case 0:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;" default : (if_statement "if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }" if (parenthesized_expression "(((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0)" ( (binary_expression "((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0" (parenthesized_expression "((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10)" ( (binary_expression "(&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10" (subscript_expression "(&DAT_002a3600)[(uint)bStack_21 * 2]" (parenthesized_expression "(&DAT_002a3600)" ( (pointer_expression "&DAT_002a3600" & identifier) )) [ (binary_expression "(uint)bStack_21 * 2" (cast_expression "(uint)bStack_21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                FUN_001e21e0();\n              }" else (compound_statement "{\n                FUN_001e21e0();\n              }" { (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" identifier (argument_list "()" ( ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x17:\n              FUN_001e1e60();" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (iVar5 == 0) goto code_r0x001e2c6c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x001e2c6c;" goto statement_identifier ;)) (expression_statement "uVar7 = (uint)*pbVar9;" (assignment_expression "uVar7 = (uint)*pbVar9" identifier = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);" (assignment_expression "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar7 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar7 * 2)" ( (binary_expression "&DAT_002a3600 + uVar7 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0x100) == 0) break;" if (parenthesized_expression "((uVar2 & 0x100) == 0)" ( (binary_expression "(uVar2 & 0x100) == 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = (uint)pbVar4[3];" (assignment_expression "uVar10 = (uint)pbVar4[3]" identifier = (cast_expression "(uint)pbVar4[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar4[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar4 = pbVar9;" (assignment_expression "pbVar4 = pbVar9" identifier = identifier) ;) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);" (assignment_expression "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar10 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar10 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar10 * 2)" ( (binary_expression "&DAT_002a3600 + uVar10 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar10 * 2" identifier * number_literal)) ))))) ;) })) })) })) })) (goto_statement "goto LAB_001e2790;" goto statement_identifier ;)) (case_statement "case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;" case (char_literal "'c'" ' character ') : (expression_statement "pcVar6 = (char *)FUN_001e2520();" (assignment_expression "pcVar6 = (char *)FUN_001e2520()" identifier = (cast_expression "(char *)FUN_001e2520()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2520()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }" if (parenthesized_expression "((pcVar6 != (char *)0x0) && (*pcVar6 == 'c'))" ( (binary_expression "(pcVar6 != (char *)0x0) && (*pcVar6 == 'c')" (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar6 == 'c')" ( (binary_expression "*pcVar6 == 'c'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'c'" ' character ')) ))) )) (compound_statement "{\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }" { (expression_statement "pbVar9 = (byte *)FUN_001e2520();" (assignment_expression "pbVar9 = (byte *)FUN_001e2520()" identifier = (cast_expression "(byte *)FUN_001e2520()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2520()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return pbVar9;" return identifier ;) })) (labeled_statement "LAB_001e2790:\n    pbVar9 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (break_statement "break;" break ;)) (case_statement "case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;" case (char_literal "'e'" ' character ') : (expression_statement "pbVar9 = (byte *)FUN_001e2520();" (assignment_expression "pbVar9 = (byte *)FUN_001e2520()" identifier = (cast_expression "(byte *)FUN_001e2520()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2520()" identifier (argument_list "()" ( ))))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':" case (char_literal "'i'" ' character ') :) (case_statement "case '0':" case (char_literal "'0'" ' character ') :) (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':" case (char_literal "'2'" ' character ') :) (case_statement "case '3':" case (char_literal "'3'" ' character ') :) (case_statement "case '4':" case (char_literal "'4'" ' character ') :) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;" case (char_literal "'9'" ' character ') : (expression_statement "pbVar9 = (byte *)FUN_001e2220();" (assignment_expression "pbVar9 = (byte *)FUN_001e2220()" identifier = (cast_expression "(byte *)FUN_001e2220()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2220()" identifier (argument_list "()" ( ))))) ;) (return_statement "return pbVar9;" return identifier ;)) (case_statement "case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();" case (char_literal "'n'" ' character ') : (expression_statement "pbVar9 = (byte *)(param_2 + 1);" (assignment_expression "pbVar9 = (byte *)(param_2 + 1)" identifier = (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;)) })) (return_statement "return pbVar9;" return identifier ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nchar * __regparm3 dlang_value(string *decl,char *mangled,char *name,char type)\n\n{\n  int iVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte bVar4;\n  uint uVar5;\n  char cVar6;\n  char *pcVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *s;\n  bool bVar10;\n  string *in_stack_ffffffb4;\n  char *in_stack_ffffffb8;\n  char in_stack_ffffffbc;\n  char type_1;\n  char val;\n  long elements;\n  \n  if ((mangled == (char *)0x0) || (type_1 = *mangled, type_1 == '\0')) goto _L224;\n  switch(type_1) {\n  default:\n    goto _L224;\n  case 'A':\n    if (type == 'H') {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    goto LAB_001e2826;\n  case 'N':\n    string_append(decl,"-");\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    break;\n  case 'S':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 != (char *)0x0) {\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 == (char *)0x0) {\n      return (char *)0x0;\n    }\n    if (*pcVar7 == '_') {\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }\n    goto _L224;\n  case 'c':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    string_append(decl,"+");\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }\n_L224:\n    pcVar7 = (char *)0x0;\n    break;\n  case 'e':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    return pcVar7;\n  case 'n':\n    pcVar7 = mangled + 1;\n    string_append(decl,"null");\n  }\n  return pcVar7;\nLAB_001e281e:\n  elements = -1;\nLAB_001e2826:\n  string_append(decl,"]");\n  return pcVar7;\n}\n\n" comment (function_definition "char * __regparm3 dlang_value(string *decl,char *mangled,char *name,char type)\n\n{\n  int iVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte bVar4;\n  uint uVar5;\n  char cVar6;\n  char *pcVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *s;\n  bool bVar10;\n  string *in_stack_ffffffb4;\n  char *in_stack_ffffffb8;\n  char in_stack_ffffffbc;\n  char type_1;\n  char val;\n  long elements;\n  \n  if ((mangled == (char *)0x0) || (type_1 = *mangled, type_1 == '\0')) goto _L224;\n  switch(type_1) {\n  default:\n    goto _L224;\n  case 'A':\n    if (type == 'H') {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    goto LAB_001e2826;\n  case 'N':\n    string_append(decl,"-");\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    break;\n  case 'S':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 != (char *)0x0) {\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 == (char *)0x0) {\n      return (char *)0x0;\n    }\n    if (*pcVar7 == '_') {\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }\n    goto _L224;\n  case 'c':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    string_append(decl,"+");\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }\n_L224:\n    pcVar7 = (char *)0x0;\n    break;\n  case 'e':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    return pcVar7;\n  case 'n':\n    pcVar7 = mangled + 1;\n    string_append(decl,"null");\n  }\n  return pcVar7;\nLAB_001e281e:\n  elements = -1;\nLAB_001e2826:\n  string_append(decl,"]");\n  return pcVar7;\n}" primitive_type (pointer_declarator "* __regparm3 dlang_value(string *decl,char *mangled,char *name,char type)" * (ERROR "__regparm3" identifier) (function_declarator "dlang_value(string *decl,char *mangled,char *name,char type)" identifier (parameter_list "(string *decl,char *mangled,char *name,char type)" ( (parameter_declaration "string *decl" type_identifier (pointer_declarator "*decl" * identifier)) , (parameter_declaration "char *mangled" primitive_type (pointer_declarator "*mangled" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "char type" primitive_type identifier) )))) (compound_statement "{\n  int iVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte bVar4;\n  uint uVar5;\n  char cVar6;\n  char *pcVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *s;\n  bool bVar10;\n  string *in_stack_ffffffb4;\n  char *in_stack_ffffffb8;\n  char in_stack_ffffffbc;\n  char type_1;\n  char val;\n  long elements;\n  \n  if ((mangled == (char *)0x0) || (type_1 = *mangled, type_1 == '\0')) goto _L224;\n  switch(type_1) {\n  default:\n    goto _L224;\n  case 'A':\n    if (type == 'H') {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    goto LAB_001e2826;\n  case 'N':\n    string_append(decl,"-");\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    break;\n  case 'S':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 != (char *)0x0) {\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 == (char *)0x0) {\n      return (char *)0x0;\n    }\n    if (*pcVar7 == '_') {\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }\n    goto _L224;\n  case 'c':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    string_append(decl,"+");\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }\n_L224:\n    pcVar7 = (char *)0x0;\n    break;\n  case 'e':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    return pcVar7;\n  case 'n':\n    pcVar7 = mangled + 1;\n    string_append(decl,"null");\n  }\n  return pcVar7;\nLAB_001e281e:\n  elements = -1;\nLAB_001e2826:\n  string_append(decl,"]");\n  return pcVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "string *in_stack_ffffffb4;" type_identifier (pointer_declarator "*in_stack_ffffffb4" * identifier) ;) (declaration "char *in_stack_ffffffb8;" primitive_type (pointer_declarator "*in_stack_ffffffb8" * identifier) ;) (declaration "char in_stack_ffffffbc;" primitive_type identifier ;) (declaration "char type_1;" primitive_type identifier ;) (declaration "char val;" primitive_type identifier ;) (declaration "long elements;" (sized_type_specifier "long" long) identifier ;) (if_statement "if ((mangled == (char *)0x0) || (type_1 = *mangled, type_1 == '\0')) goto _L224;" if (parenthesized_expression "((mangled == (char *)0x0) || (type_1 = *mangled, type_1 == '\0'))" ( (binary_expression "(mangled == (char *)0x0) || (type_1 = *mangled, type_1 == '\0')" (parenthesized_expression "(mangled == (char *)0x0)" ( (binary_expression "mangled == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(type_1 = *mangled, type_1 == '\0')" ( (comma_expression "type_1 = *mangled, type_1 == '\0'" (assignment_expression "type_1 = *mangled" identifier = (pointer_expression "*mangled" * identifier)) , (binary_expression "type_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto _L224;" goto statement_identifier ;)) (switch_statement "switch(type_1) {\n  default:\n    goto _L224;\n  case 'A':\n    if (type == 'H') {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    goto LAB_001e2826;\n  case 'N':\n    string_append(decl,"-");\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    break;\n  case 'S':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 != (char *)0x0) {\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 == (char *)0x0) {\n      return (char *)0x0;\n    }\n    if (*pcVar7 == '_') {\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }\n    goto _L224;\n  case 'c':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    string_append(decl,"+");\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }\n_L224:\n    pcVar7 = (char *)0x0;\n    break;\n  case 'e':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    return pcVar7;\n  case 'n':\n    pcVar7 = mangled + 1;\n    string_append(decl,"null");\n  }" switch (parenthesized_expression "(type_1)" ( identifier )) (compound_statement "{\n  default:\n    goto _L224;\n  case 'A':\n    if (type == 'H') {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    goto LAB_001e2826;\n  case 'N':\n    string_append(decl,"-");\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    break;\n  case 'S':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 != (char *)0x0) {\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 == (char *)0x0) {\n      return (char *)0x0;\n    }\n    if (*pcVar7 == '_') {\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }\n    goto _L224;\n  case 'c':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    string_append(decl,"+");\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }\n_L224:\n    pcVar7 = (char *)0x0;\n    break;\n  case 'e':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    return pcVar7;\n  case 'n':\n    pcVar7 = mangled + 1;\n    string_append(decl,"null");\n  }" { (case_statement "default:\n    goto _L224;" default : (goto_statement "goto _L224;" goto statement_identifier ;)) (case_statement "case 'A':\n    if (type == 'H') {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    goto LAB_001e2826;" case (char_literal "'A'" ' character ') : (if_statement "if (type == 'H') {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }\n    else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }" if (parenthesized_expression "(type == 'H')" ( (binary_expression "type == 'H'" identifier == (char_literal "'H'" ' character ')) )) (compound_statement "{\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }" { (expression_statement "pcVar7 = dlang_number(mangled + 1,&elements);" (assignment_expression "pcVar7 = dlang_number(mangled + 1,&elements)" identifier = (call_expression "dlang_number(mangled + 1,&elements)" identifier (argument_list "(mangled + 1,&elements)" ( (binary_expression "mangled + 1" identifier + number_literal) , (pointer_expression "&elements" & identifier) )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (char *)0x0;\n      }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "string_append(decl,"[");" (call_expression "string_append(decl,"[")" identifier (argument_list "(decl,"[")" ( identifier , (string_literal ""["" " string_content ") ))) ;) (while_statement "while (bVar10 = elements != 0, elements = elements + -1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }" while (parenthesized_expression "(bVar10 = elements != 0, elements = elements + -1, bVar10)" ( (comma_expression "bVar10 = elements != 0, elements = elements + -1, bVar10" (assignment_expression "bVar10 = elements != 0" identifier = (binary_expression "elements != 0" identifier != number_literal)) , (comma_expression "elements = elements + -1, bVar10" (assignment_expression "elements = elements + -1" identifier = (binary_expression "elements + -1" identifier + number_literal)) , identifier)) )) (compound_statement "{\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        string_append(decl,":");\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }" { (expression_statement "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');" (assignment_expression "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier = (call_expression "dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier (argument_list "(decl,pcVar7,(char *)0x0,'\0')" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (char_literal "'\0'" ' escape_sequence ') )))) ;) (expression_statement "string_append(decl,":");" (call_expression "string_append(decl,":")" identifier (argument_list "(decl,":")" ( identifier , (string_literal "":"" " string_content ") ))) ;) (expression_statement "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');" (assignment_expression "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier = (call_expression "dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier (argument_list "(decl,pcVar7,(char *)0x0,'\0')" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (char_literal "'\0'" ' escape_sequence ') )))) ;) (if_statement "if (elements == 0) goto LAB_001e281e;" if (parenthesized_expression "(elements == 0)" ( (binary_expression "elements == 0" identifier == number_literal) )) (goto_statement "goto LAB_001e281e;" goto statement_identifier ;)) (expression_statement "string_append(decl,", ");" (call_expression "string_append(decl,", ")" identifier (argument_list "(decl,", ")" ( identifier , (string_literal "", "" " string_content ") ))) ;) })) }) (else_clause "else {\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }" else (compound_statement "{\n      pcVar7 = dlang_number(mangled + 1,&elements);\n      if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }\n      string_append(decl,"[");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }\n    }" { (expression_statement "pcVar7 = dlang_number(mangled + 1,&elements);" (assignment_expression "pcVar7 = dlang_number(mangled + 1,&elements)" identifier = (call_expression "dlang_number(mangled + 1,&elements)" identifier (argument_list "(mangled + 1,&elements)" ( (binary_expression "mangled + 1" identifier + number_literal) , (pointer_expression "&elements" & identifier) )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n        return (char *)0x0;\n      }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (char *)0x0;\n      }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "string_append(decl,"[");" (call_expression "string_append(decl,"[")" identifier (argument_list "(decl,"[")" ( identifier , (string_literal ""["" " string_content ") ))) ;) (while_statement "while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }" while (parenthesized_expression "(iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10)" ( (comma_expression "iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10" (assignment_expression "iVar1 = elements + -1" identifier = (binary_expression "elements + -1" identifier + number_literal)) , (comma_expression "bVar10 = elements != 0, elements = iVar1, bVar10" (assignment_expression "bVar10 = elements != 0" identifier = (binary_expression "elements != 0" identifier != number_literal)) , (comma_expression "elements = iVar1, bVar10" (assignment_expression "elements = iVar1" identifier = identifier) , identifier))) )) (compound_statement "{\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) goto LAB_001e281e;\n        string_append(decl,", ");\n      }" { (expression_statement "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');" (assignment_expression "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier = (call_expression "dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier (argument_list "(decl,pcVar7,(char *)0x0,'\0')" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (char_literal "'\0'" ' escape_sequence ') )))) ;) (if_statement "if (elements == 0) goto LAB_001e281e;" if (parenthesized_expression "(elements == 0)" ( (binary_expression "elements == 0" identifier == number_literal) )) (goto_statement "goto LAB_001e281e;" goto statement_identifier ;)) (expression_statement "string_append(decl,", ");" (call_expression "string_append(decl,", ")" identifier (argument_list "(decl,", ")" ( identifier , (string_literal "", "" " string_content ") ))) ;) })) }))) (goto_statement "goto LAB_001e2826;" goto statement_identifier ;)) (case_statement "case 'N':\n    string_append(decl,"-");\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    break;" case (char_literal "'N'" ' character ') : (expression_statement "string_append(decl,"-");" (call_expression "string_append(decl,"-")" identifier (argument_list "(decl,"-")" ( identifier , (string_literal ""-"" " string_content ") ))) ;) (expression_statement "pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);" (assignment_expression "pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc)" identifier = (call_expression "dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc)" identifier (argument_list "(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 'S':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 != (char *)0x0) {\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "pcVar7 = dlang_number(mangled + 1,&elements);" (assignment_expression "pcVar7 = dlang_number(mangled + 1,&elements)" identifier = (call_expression "dlang_number(mangled + 1,&elements)" identifier (argument_list "(mangled + 1,&elements)" ( (binary_expression "mangled + 1" identifier + number_literal) , (pointer_expression "&elements" & identifier) )))) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (name != (char *)0x0) {\n        string_append(decl,name);\n      }\n      string_append(decl,"(");\n      while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }\n      string_append(decl,")");\n    }" { (if_statement "if (name != (char *)0x0) {\n        string_append(decl,name);\n      }" if (parenthesized_expression "(name != (char *)0x0)" ( (binary_expression "name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        string_append(decl,name);\n      }" { (expression_statement "string_append(decl,name);" (call_expression "string_append(decl,name)" identifier (argument_list "(decl,name)" ( identifier , identifier ))) ;) })) (expression_statement "string_append(decl,"(");" (call_expression "string_append(decl,"(")" identifier (argument_list "(decl,"(")" ( identifier , (string_literal ""("" " string_content ") ))) ;) (while_statement "while (iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10) {\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }" while (parenthesized_expression "(iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10)" ( (comma_expression "iVar1 = elements + -1, bVar10 = elements != 0, elements = iVar1, bVar10" (assignment_expression "iVar1 = elements + -1" identifier = (binary_expression "elements + -1" identifier + number_literal)) , (comma_expression "bVar10 = elements != 0, elements = iVar1, bVar10" (assignment_expression "bVar10 = elements != 0" identifier = (binary_expression "elements != 0" identifier != number_literal)) , (comma_expression "elements = iVar1, bVar10" (assignment_expression "elements = iVar1" identifier = identifier) , identifier))) )) (compound_statement "{\n        pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');\n        if (elements == 0) {\n          elements = -1;\n          break;\n        }\n        string_append(decl,", ");\n      }" { (expression_statement "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0');" (assignment_expression "pcVar7 = dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier = (call_expression "dlang_value(decl,pcVar7,(char *)0x0,'\0')" identifier (argument_list "(decl,pcVar7,(char *)0x0,'\0')" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (char_literal "'\0'" ' escape_sequence ') )))) ;) (if_statement "if (elements == 0) {\n          elements = -1;\n          break;\n        }" if (parenthesized_expression "(elements == 0)" ( (binary_expression "elements == 0" identifier == number_literal) )) (compound_statement "{\n          elements = -1;\n          break;\n        }" { (expression_statement "elements = -1;" (assignment_expression "elements = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "string_append(decl,", ");" (call_expression "string_append(decl,", ")" identifier (argument_list "(decl,", ")" ( identifier , (string_literal "", "" " string_content ") ))) ;) })) (expression_statement "string_append(decl,")");" (call_expression "string_append(decl,")")" identifier (argument_list "(decl,")")" ( identifier , (string_literal "")"" " string_content ") ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 'a':" case (char_literal "'a'" ' character ') :) (case_statement "case 'd':" case (char_literal "'d'" ' character ') :) (case_statement "case 'w':\n    pcVar7 = dlang_number(mangled + 1,&elements);\n    if (pcVar7 == (char *)0x0) {\n      return (char *)0x0;\n    }\n    if (*pcVar7 == '_') {\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }\n    goto _L224;" case (char_literal "'w'" ' character ') : (expression_statement "pcVar7 = dlang_number(mangled + 1,&elements);" (assignment_expression "pcVar7 = dlang_number(mangled + 1,&elements)" identifier = (call_expression "dlang_number(mangled + 1,&elements)" identifier (argument_list "(mangled + 1,&elements)" ( (binary_expression "mangled + 1" identifier + number_literal) , (pointer_expression "&elements" & identifier) )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n      return (char *)0x0;\n    }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (char *)0x0;\n    }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*pcVar7 == '_') {\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(*pcVar7 == '_')" ( (binary_expression "*pcVar7 == '_'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      pbVar9 = (byte *)(pcVar7 + 1);\n      string_append(decl,"\"");\n      iVar1 = elements + -1;\n      bVar10 = elements == 0;\n      elements = iVar1;\n      if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }\n    }" { (expression_statement "pbVar9 = (byte *)(pcVar7 + 1);" (assignment_expression "pbVar9 = (byte *)(pcVar7 + 1)" identifier = (cast_expression "(byte *)(pcVar7 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "string_append(decl,"\"");" (call_expression "string_append(decl,"\"")" identifier (argument_list "(decl,"\"")" ( identifier , (string_literal ""\""" " escape_sequence ") ))) ;) (expression_statement "iVar1 = elements + -1;" (assignment_expression "iVar1 = elements + -1" identifier = (binary_expression "elements + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = elements == 0;" (assignment_expression "bVar10 = elements == 0" identifier = (binary_expression "elements == 0" identifier == number_literal)) ;) (expression_statement "elements = iVar1;" (assignment_expression "elements = iVar1" identifier = identifier) ;) (if_statement "if (bVar10) {\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\nLAB_001e2c6c:\n        string_append(decl,"\"");\n        if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }\n        string_appendn(decl,&type_1,1);\n        return (char *)pbVar9;\n      }" { (labeled_statement "LAB_001e2c6c:\n        string_append(decl,"\"");" statement_identifier : (expression_statement "string_append(decl,"\"");" (call_expression "string_append(decl,"\"")" identifier (argument_list "(decl,"\"")" ( identifier , (string_literal ""\""" " escape_sequence ") ))) ;)) (if_statement "if (type_1 == 'a') {\n          return (char *)pbVar9;\n        }" if (parenthesized_expression "(type_1 == 'a')" ( (binary_expression "type_1 == 'a'" identifier == (char_literal "'a'" ' character ')) )) (compound_statement "{\n          return (char *)pbVar9;\n        }" { (return_statement "return (char *)pbVar9;" return (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (expression_statement "string_appendn(decl,&type_1,1);" (call_expression "string_appendn(decl,&type_1,1)" identifier (argument_list "(decl,&type_1,1)" ( identifier , (pointer_expression "&type_1" & identifier) , number_literal ))) ;) (return_statement "return (char *)pbVar9;" return (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (if_statement "if (pbVar9 != (byte *)0x0) {\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }" if (parenthesized_expression "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar5 = (uint)(byte)pcVar7[1];\n        uVar2 = _sch_istable[uVar5];\n        if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }\n      }" { (expression_statement "uVar5 = (uint)(byte)pcVar7[1];" (assignment_expression "uVar5 = (uint)(byte)pcVar7[1]" identifier = (cast_expression "(uint)(byte)pcVar7[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar7[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar7[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar2 = _sch_istable[uVar5];" (assignment_expression "uVar2 = _sch_istable[uVar5]" identifier = (subscript_expression "_sch_istable[uVar5]" identifier [ identifier ])) ;) (if_statement "if ((uVar2 & 0x100) != 0) {\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar8 = (uint)(byte)pcVar7[2];\n          uVar3 = _sch_istable[uVar8];\n          if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }\n        }" { (expression_statement "uVar8 = (uint)(byte)pcVar7[2];" (assignment_expression "uVar8 = (uint)(byte)pcVar7[2]" identifier = (cast_expression "(uint)(byte)pcVar7[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar7[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar7[2]" identifier [ number_literal ])))) ;) (expression_statement "uVar3 = _sch_istable[uVar8];" (assignment_expression "uVar3 = _sch_istable[uVar8]" identifier = (subscript_expression "_sch_istable[uVar8]" identifier [ identifier ])) ;) (if_statement "if ((uVar3 & 0x100) != 0) {\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }" if (parenthesized_expression "((uVar3 & 0x100) != 0)" ( (binary_expression "(uVar3 & 0x100) != 0" (parenthesized_expression "(uVar3 & 0x100)" ( (binary_expression "uVar3 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            s = pbVar9;\n            do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);\n          }" { (expression_statement "s = pbVar9;" (assignment_expression "s = pbVar9" identifier = identifier) ;) (do_statement "do {\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            } while ((uVar3 & 0x100) != 0);" do (compound_statement "{\n              cVar6 = (char)uVar5 + -0x30;\n              if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }\n              if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }\n              val = (byte)((int)cVar6 << 4) | bVar4;\n              pbVar9 = s + 2;\n              if (pbVar9 == (byte *)0x0) break;\n              switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }\n              iVar1 = elements + -1;\n              bVar10 = elements == 0;\n              elements = iVar1;\n              if (bVar10) goto LAB_001e2c6c;\n              uVar5 = (uint)*pbVar9;\n              uVar2 = _sch_istable[uVar5];\n              if ((uVar2 & 0x100) == 0) break;\n              uVar8 = (uint)s[3];\n              uVar3 = _sch_istable[uVar8];\n              s = pbVar9;\n            }" { (expression_statement "cVar6 = (char)uVar5 + -0x30;" (assignment_expression "cVar6 = (char)uVar5 + -0x30" identifier = (binary_expression "(char)uVar5 + -0x30" (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((uVar2 & 4) == 0) {\n                cVar6 = (char)uVar5 + -0x37;\n              }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                cVar6 = (char)uVar5 + -0x37;\n              }" { (expression_statement "cVar6 = (char)uVar5 + -0x37;" (assignment_expression "cVar6 = (char)uVar5 + -0x37" identifier = (binary_expression "(char)uVar5 + -0x37" (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if ((uVar3 & 4) == 0) {\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }\n              else {\n                bVar4 = (char)uVar8 - 0x30;\n              }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n              }" { (expression_statement "bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;" (assignment_expression "bVar4 = ((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" identifier = (binary_expression "((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" (parenthesized_expression "((char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U))" ( (binary_expression "(char)uVar8 - (-((uVar3 & 0x80) == 0) & 0x20U)" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) - (parenthesized_expression "(-((uVar3 & 0x80) == 0) & 0x20U)" ( (binary_expression "-((uVar3 & 0x80) == 0) & 0x20U" (unary_expression "-((uVar3 & 0x80) == 0)" - (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) ))) & number_literal) ))) )) - number_literal)) ;) }) (else_clause "else {\n                bVar4 = (char)uVar8 - 0x30;\n              }" else (compound_statement "{\n                bVar4 = (char)uVar8 - 0x30;\n              }" { (expression_statement "bVar4 = (char)uVar8 - 0x30;" (assignment_expression "bVar4 = (char)uVar8 - 0x30" identifier = (binary_expression "(char)uVar8 - 0x30" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) - number_literal)) ;) }))) (expression_statement "val = (byte)((int)cVar6 << 4) | bVar4;" (assignment_expression "val = (byte)((int)cVar6 << 4) | bVar4" identifier = (binary_expression "(byte)((int)cVar6 << 4) | bVar4" (call_expression "(byte)((int)cVar6 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)cVar6 << 4)" ( (binary_expression "(int)cVar6 << 4" (cast_expression "(int)cVar6" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) | identifier)) ;) (expression_statement "pbVar9 = s + 2;" (assignment_expression "pbVar9 = s + 2" identifier = (binary_expression "s + 2" identifier + number_literal)) ;) (if_statement "if (pbVar9 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (switch_statement "switch((byte)val - 9 & 0xff) {\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }" switch (parenthesized_expression "((byte)val - 9 & 0xff)" ( (binary_expression "(byte)val - 9 & 0xff" (binary_expression "(byte)val - 9" (cast_expression "(byte)val" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal) )) (compound_statement "{\n              case 0:\n                string_append(decl,"\\t");\n                break;\n              case 1:\n                string_append(decl,"\\n");\n                break;\n              case 2:\n                string_append(decl,"\\v");\n                break;\n              case 3:\n                string_append(decl,"\\f");\n                break;\n              case 4:\n                string_append(decl,"\\r");\n                break;\n              default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;\n              case 0x17:\n                string_append(decl," ");\n              }" { (case_statement "case 0:\n                string_append(decl,"\\t");\n                break;" case number_literal : (expression_statement "string_append(decl,"\\t");" (call_expression "string_append(decl,"\\t")" identifier (argument_list "(decl,"\\t")" ( identifier , (string_literal ""\\t"" " escape_sequence string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n                string_append(decl,"\\n");\n                break;" case number_literal : (expression_statement "string_append(decl,"\\n");" (call_expression "string_append(decl,"\\n")" identifier (argument_list "(decl,"\\n")" ( identifier , (string_literal ""\\n"" " escape_sequence string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n                string_append(decl,"\\v");\n                break;" case number_literal : (expression_statement "string_append(decl,"\\v");" (call_expression "string_append(decl,"\\v")" identifier (argument_list "(decl,"\\v")" ( identifier , (string_literal ""\\v"" " escape_sequence string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n                string_append(decl,"\\f");\n                break;" case number_literal : (expression_statement "string_append(decl,"\\f");" (call_expression "string_append(decl,"\\f")" identifier (argument_list "(decl,"\\f")" ( identifier , (string_literal ""\\f"" " escape_sequence string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                string_append(decl,"\\r");\n                break;" case number_literal : (expression_statement "string_append(decl,"\\r");" (call_expression "string_append(decl,"\\r")" identifier (argument_list "(decl,"\\r")" ( identifier , (string_literal ""\\r"" " escape_sequence string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }\n                break;" default : (if_statement "if ((_sch_istable[(byte)val] & 0x10) == 0) {\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }\n                else {\n                  string_appendn(decl,&val,1);\n                }" if (parenthesized_expression "((_sch_istable[(byte)val] & 0x10) == 0)" ( (binary_expression "(_sch_istable[(byte)val] & 0x10) == 0" (parenthesized_expression "(_sch_istable[(byte)val] & 0x10)" ( (binary_expression "_sch_istable[(byte)val] & 0x10" (subscript_expression "_sch_istable[(byte)val]" identifier [ (cast_expression "(byte)val" ( (type_descriptor "byte" type_identifier) ) identifier) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                  string_append(decl,"\\x");\n                  string_appendn(decl,(char *)s,2);\n                }" { (expression_statement "string_append(decl,"\\x");" (call_expression "string_append(decl,"\\x")" identifier (argument_list "(decl,"\\x")" ( identifier , (string_literal ""\\x"" " escape_sequence string_content ") ))) ;) (expression_statement "string_appendn(decl,(char *)s,2);" (call_expression "string_appendn(decl,(char *)s,2)" identifier (argument_list "(decl,(char *)s,2)" ( identifier , (cast_expression "(char *)s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) }) (else_clause "else {\n                  string_appendn(decl,&val,1);\n                }" else (compound_statement "{\n                  string_appendn(decl,&val,1);\n                }" { (expression_statement "string_appendn(decl,&val,1);" (call_expression "string_appendn(decl,&val,1)" identifier (argument_list "(decl,&val,1)" ( identifier , (pointer_expression "&val" & identifier) , number_literal ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x17:\n                string_append(decl," ");" case number_literal : (expression_statement "string_append(decl," ");" (call_expression "string_append(decl," ")" identifier (argument_list "(decl," ")" ( identifier , (string_literal "" "" " string_content ") ))) ;)) })) (expression_statement "iVar1 = elements + -1;" (assignment_expression "iVar1 = elements + -1" identifier = (binary_expression "elements + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = elements == 0;" (assignment_expression "bVar10 = elements == 0" identifier = (binary_expression "elements == 0" identifier == number_literal)) ;) (expression_statement "elements = iVar1;" (assignment_expression "elements = iVar1" identifier = identifier) ;) (if_statement "if (bVar10) goto LAB_001e2c6c;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_001e2c6c;" goto statement_identifier ;)) (expression_statement "uVar5 = (uint)*pbVar9;" (assignment_expression "uVar5 = (uint)*pbVar9" identifier = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar2 = _sch_istable[uVar5];" (assignment_expression "uVar2 = _sch_istable[uVar5]" identifier = (subscript_expression "_sch_istable[uVar5]" identifier [ identifier ])) ;) (if_statement "if ((uVar2 & 0x100) == 0) break;" if (parenthesized_expression "((uVar2 & 0x100) == 0)" ( (binary_expression "(uVar2 & 0x100) == 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = (uint)s[3];" (assignment_expression "uVar8 = (uint)s[3]" identifier = (cast_expression "(uint)s[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "s[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar3 = _sch_istable[uVar8];" (assignment_expression "uVar3 = _sch_istable[uVar8]" identifier = (subscript_expression "_sch_istable[uVar8]" identifier [ identifier ])) ;) (expression_statement "s = pbVar9;" (assignment_expression "s = pbVar9" identifier = identifier) ;) }) while (parenthesized_expression "((uVar3 & 0x100) != 0)" ( (binary_expression "(uVar3 & 0x100) != 0" (parenthesized_expression "(uVar3 & 0x100)" ( (binary_expression "uVar3 & 0x100" identifier & number_literal) )) != number_literal) )) ;) })) })) })) })) (goto_statement "goto _L224;" goto statement_identifier ;)) (case_statement "case 'c':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    string_append(decl,"+");\n    if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }\n_L224:\n    pcVar7 = (char *)0x0;\n    break;" case (char_literal "'c'" ' character ') : (expression_statement "pcVar7 = dlang_parse_real(decl,mangled + 1);" (assignment_expression "pcVar7 = dlang_parse_real(decl,mangled + 1)" identifier = (call_expression "dlang_parse_real(decl,mangled + 1)" identifier (argument_list "(decl,mangled + 1)" ( identifier , (binary_expression "mangled + 1" identifier + number_literal) )))) ;) (expression_statement "string_append(decl,"+");" (call_expression "string_append(decl,"+")" identifier (argument_list "(decl,"+")" ( identifier , (string_literal ""+"" " string_content ") ))) ;) (if_statement "if ((pcVar7 != (char *)0x0) && (*pcVar7 == 'c')) {\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }" if (parenthesized_expression "((pcVar7 != (char *)0x0) && (*pcVar7 == 'c'))" ( (binary_expression "(pcVar7 != (char *)0x0) && (*pcVar7 == 'c')" (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar7 == 'c')" ( (binary_expression "*pcVar7 == 'c'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'c'" ' character ')) ))) )) (compound_statement "{\n      pcVar7 = dlang_parse_real(decl,pcVar7 + 1);\n      string_append(decl,"i");\n      return pcVar7;\n    }" { (expression_statement "pcVar7 = dlang_parse_real(decl,pcVar7 + 1);" (assignment_expression "pcVar7 = dlang_parse_real(decl,pcVar7 + 1)" identifier = (call_expression "dlang_parse_real(decl,pcVar7 + 1)" identifier (argument_list "(decl,pcVar7 + 1)" ( identifier , (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "string_append(decl,"i");" (call_expression "string_append(decl,"i")" identifier (argument_list "(decl,"i")" ( identifier , (string_literal ""i"" " string_content ") ))) ;) (return_statement "return pcVar7;" return identifier ;) })) (labeled_statement "_L224:\n    pcVar7 = (char *)0x0;" statement_identifier : (expression_statement "pcVar7 = (char *)0x0;" (assignment_expression "pcVar7 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (break_statement "break;" break ;)) (case_statement "case 'e':\n    pcVar7 = dlang_parse_real(decl,mangled + 1);\n    break;" case (char_literal "'e'" ' character ') : (expression_statement "pcVar7 = dlang_parse_real(decl,mangled + 1);" (assignment_expression "pcVar7 = dlang_parse_real(decl,mangled + 1)" identifier = (call_expression "dlang_parse_real(decl,mangled + 1)" identifier (argument_list "(decl,mangled + 1)" ( identifier , (binary_expression "mangled + 1" identifier + number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':" case (char_literal "'i'" ' character ') :) (case_statement "case '0':" case (char_literal "'0'" ' character ') :) (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':" case (char_literal "'2'" ' character ') :) (case_statement "case '3':" case (char_literal "'3'" ' character ') :) (case_statement "case '4':" case (char_literal "'4'" ' character ') :) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n    pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);\n    return pcVar7;" case (char_literal "'9'" ' character ') : (expression_statement "pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);" (assignment_expression "pcVar7 = dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc)" identifier = (call_expression "dlang_parse_integer(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc)" identifier (argument_list "(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc)" ( identifier , identifier , identifier )))) ;) (return_statement "return pcVar7;" return identifier ;)) (case_statement "case 'n':\n    pcVar7 = mangled + 1;\n    string_append(decl,"null");" case (char_literal "'n'" ' character ') : (expression_statement "pcVar7 = mangled + 1;" (assignment_expression "pcVar7 = mangled + 1" identifier = (binary_expression "mangled + 1" identifier + number_literal)) ;) (expression_statement "string_append(decl,"null");" (call_expression "string_append(decl,"null")" identifier (argument_list "(decl,"null")" ( identifier , (string_literal ""null"" " string_content ") ))) ;)) })) (return_statement "return pcVar7;" return identifier ;) (labeled_statement "LAB_001e281e:\n  elements = -1;" statement_identifier : (expression_statement "elements = -1;" (assignment_expression "elements = -1" identifier = number_literal) ;)) (labeled_statement "LAB_001e2826:\n  string_append(decl,"]");" statement_identifier : (expression_statement "string_append(decl,"]");" (call_expression "string_append(decl,"]")" identifier (argument_list "(decl,"]")" ( identifier , (string_literal ""]"" " string_content ") ))) ;)) (return_statement "return pcVar7;" return identifier ;) })))
(translation_unit "byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)\n\n{\n  char cVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte *pbVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  char cVar8;\n  byte *pbVar9;\n  uint uVar10;\n  bool bVar11;\n  byte bStack_21;\n  int iStack_20;\n  \n  if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;\n  switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }\n  return pbVar9;\n}\n\n" (ERROR "byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" (binary_expression "byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" identifier (argument_list "(undefined4 param_1,char *param_2,int param_3,char param_4)" ( identifier (ERROR "param_1" identifier) , (binary_expression "char *param_2" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "char" identifier) identifier ))))) (compound_statement "{\n  char cVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte *pbVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  char cVar8;\n  byte *pbVar9;\n  uint uVar10;\n  bool bVar11;\n  byte bStack_21;\n  int iStack_20;\n  \n  if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;\n  switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }\n  return pbVar9;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "byte bStack_21;" type_identifier identifier ;) (declaration "int iStack_20;" primitive_type identifier ;) (if_statement "if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;" if (parenthesized_expression "((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0'))" ( (binary_expression "(param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')" (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(cVar1 = *param_2, cVar1 == '\0')" ( (comma_expression "cVar1 = *param_2, cVar1 == '\0'" (assignment_expression "cVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_001e2790;" goto statement_identifier ;)) (switch_statement "switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }" { (case_statement "default:\n    goto LAB_001e2790;" default : (goto_statement "goto LAB_001e2790;" goto statement_identifier ;)) (case_statement "case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;" case (char_literal "'A'" ' character ') : (if_statement "if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" if (parenthesized_expression "(param_4 == 'H')" ( (binary_expression "param_4 == 'H'" identifier == (char_literal "'H'" ' character ')) )) (compound_statement "{\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }" { (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" identifier = (cast_expression "(byte *)FUN_001e1d50()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (byte *)0x0;\n      }" { (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = iStack_20 != 0;" (assignment_expression "bVar11 = iStack_20 != 0" identifier = (binary_expression "iStack_20 != 0" identifier != number_literal)) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) (if_statement "if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }" if (parenthesized_expression "(bVar11)" ( identifier )) (compound_statement "{\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }" { (do_statement "do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);" do (compound_statement "{\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        }" { (expression_statement "FUN_001e2720(0);" (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar9 = (byte *)FUN_001e2720(0);" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" identifier = (cast_expression "(byte *)FUN_001e2720(0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (if_statement "if (iStack_20 == 0) break;" if (parenthesized_expression "(iStack_20 == 0)" ( (binary_expression "iStack_20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar11 = iStack_20 != 0;" (assignment_expression "bVar11 = iStack_20 != 0" identifier = (binary_expression "iStack_20 != 0" identifier != number_literal)) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar11)" ( identifier )) ;) })) }) (else_clause "else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" else (compound_statement "{\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" { (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" identifier = (cast_expression "(byte *)FUN_001e1d50()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (byte *)0x0;\n      }" { (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (while_statement "while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" while (parenthesized_expression "((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)))" ( (parenthesized_expression "(iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))" ( (binary_expression "iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (binary_expression "iStack_20 != 0" identifier != number_literal) && (parenthesized_expression "(pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" ( (comma_expression "pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" identifier = (cast_expression "(byte *)FUN_001e2720(0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))))) , (binary_expression "iStack_20 + -1 != 0" (binary_expression "iStack_20 + -1" identifier + number_literal) != number_literal)) ))) )) )) (compound_statement "{\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) })) }))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;" case (char_literal "'N'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar9 = (byte *)FUN_001e2220();" (assignment_expression "pbVar9 = (byte *)FUN_001e2220()" identifier = (cast_expression "(byte *)FUN_001e2220()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2220()" identifier (argument_list "()" ( ))))) ;) (break_statement "break;" break ;)) (case_statement "case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" identifier = (cast_expression "(byte *)FUN_001e1d50()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }" if (parenthesized_expression "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }" { (if_statement "if (param_3 != 0) {\n        FUN_001e1e60();\n      }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_001e1e60();\n      }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (while_statement "while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" while (parenthesized_expression "((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)))" ( (parenthesized_expression "(iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))" ( (binary_expression "iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (binary_expression "iStack_20 != 0" identifier != number_literal) && (parenthesized_expression "(pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" ( (comma_expression "pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" identifier = (cast_expression "(byte *)FUN_001e2720(0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2720(0)" identifier (argument_list "(0)" ( number_literal ))))) , (binary_expression "iStack_20 + -1 != 0" (binary_expression "iStack_20 + -1" identifier + number_literal) != number_literal)) ))) )) )) (compound_statement "{\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) })) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;)) (case_statement "case 'a':" case (char_literal "'a'" ' character ') :) (case_statement "case 'd':" case (char_literal "'d'" ' character ') :) (case_statement "case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;" case (char_literal "'w'" ' character ') : (expression_statement "pcVar6 = (char *)FUN_001e1d50();" (assignment_expression "pcVar6 = (char *)FUN_001e1d50()" identifier = (cast_expression "(char *)FUN_001e1d50()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e1d50()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return (byte *)0x0;\n    }" { (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(*pcVar6 == '_')" ( (binary_expression "*pcVar6 == '_'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }" { (expression_statement "pbVar9 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar9 = (byte *)(pcVar6 + 1)" identifier = (cast_expression "(byte *)(pcVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }" if (parenthesized_expression "(iStack_20 == 0)" ( (binary_expression "iStack_20 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }" { (labeled_statement "code_r0x001e2c6c:\n        FUN_001e1e60();" statement_identifier : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;)) (if_statement "if (cVar1 == 'a') {\n          return pbVar9;\n        }" if (parenthesized_expression "(cVar1 == 'a')" ( (binary_expression "cVar1 == 'a'" identifier == (char_literal "'a'" ' character ')) )) (compound_statement "{\n          return pbVar9;\n        }" { (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return pbVar9;" return identifier ;) })) (if_statement "if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }" if (parenthesized_expression "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }" { (expression_statement "uVar7 = (uint)(byte)pcVar6[1];" (assignment_expression "uVar7 = (uint)(byte)pcVar6[1]" identifier = (cast_expression "(uint)(byte)pcVar6[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar6[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar6[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);" (assignment_expression "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar7 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar7 * 2)" ( (binary_expression "&DAT_002a3600 + uVar7 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }" { (expression_statement "uVar10 = (uint)(byte)pcVar6[2];" (assignment_expression "uVar10 = (uint)(byte)pcVar6[2]" identifier = (cast_expression "(uint)(byte)pcVar6[2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar6[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar6[2]" identifier [ number_literal ])))) ;) (expression_statement "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);" (assignment_expression "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar10 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar10 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar10 * 2)" ( (binary_expression "&DAT_002a3600 + uVar10 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar10 * 2" identifier * number_literal)) ))))) ;) (expression_statement "pbVar4 = pbVar9;" (assignment_expression "pbVar4 = pbVar9" identifier = identifier) ;) (expression_statement "iVar5 = iStack_20 + -1;" (assignment_expression "iVar5 = iStack_20 + -1" identifier = (binary_expression "iStack_20 + -1" identifier + number_literal)) ;) (while_statement "while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }" while (parenthesized_expression "((uVar3 & 0x100) != 0)" ( (binary_expression "(uVar3 & 0x100) != 0" (parenthesized_expression "(uVar3 & 0x100)" ( (binary_expression "uVar3 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }" { (expression_statement "cVar8 = (char)uVar7 + -0x30;" (assignment_expression "cVar8 = (char)uVar7 + -0x30" identifier = (binary_expression "(char)uVar7 + -0x30" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              cVar8 = (char)uVar7 + -0x37;\n            }" { (expression_statement "cVar8 = (char)uVar7 + -0x37;" (assignment_expression "cVar8 = (char)uVar7 + -0x37" identifier = (binary_expression "(char)uVar7 + -0x37" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) })) (if_statement "if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }" { (expression_statement "bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;" (assignment_expression "bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" identifier = (binary_expression "((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" (parenthesized_expression "((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U))" ( (binary_expression "(char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) - (parenthesized_expression "(-((uVar3 & 0x80) == 0) & 0x20U)" ( (binary_expression "-((uVar3 & 0x80) == 0) & 0x20U" (unary_expression "-((uVar3 & 0x80) == 0)" - (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) ))) & number_literal) ))) )) - number_literal)) ;) }) (else_clause "else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }" else (compound_statement "{\n              bStack_21 = (char)uVar10 - 0x30;\n            }" { (expression_statement "bStack_21 = (char)uVar10 - 0x30;" (assignment_expression "bStack_21 = (char)uVar10 - 0x30" identifier = (binary_expression "(char)uVar10 - 0x30" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) - number_literal)) ;) }))) (expression_statement "bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;" (assignment_expression "bStack_21 = (byte)((int)cVar8 << 4) | bStack_21" identifier = (binary_expression "(byte)((int)cVar8 << 4) | bStack_21" (call_expression "(byte)((int)cVar8 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((int)cVar8 << 4)" ( (binary_expression "(int)cVar8 << 4" (cast_expression "(int)cVar8" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) | identifier)) ;) (expression_statement "pbVar9 = pbVar4 + 2;" (assignment_expression "pbVar9 = pbVar4 + 2" identifier = (binary_expression "pbVar4 + 2" identifier + number_literal)) ;) (if_statement "if (pbVar9 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (switch_statement "switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }" switch (parenthesized_expression "(bStack_21 - 9 & 0xff)" ( (binary_expression "bStack_21 - 9 & 0xff" (binary_expression "bStack_21 - 9" identifier - number_literal) & number_literal) )) (compound_statement "{\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }" { (case_statement "case 0:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n              FUN_001e1e60();\n              break;" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;" default : (if_statement "if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }" if (parenthesized_expression "(((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0)" ( (binary_expression "((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0" (parenthesized_expression "((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10)" ( (binary_expression "(&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10" (subscript_expression "(&DAT_002a3600)[(uint)bStack_21 * 2]" (parenthesized_expression "(&DAT_002a3600)" ( (pointer_expression "&DAT_002a3600" & identifier) )) [ (binary_expression "(uint)bStack_21 * 2" (cast_expression "(uint)bStack_21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }" { (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                FUN_001e21e0();\n              }" else (compound_statement "{\n                FUN_001e21e0();\n              }" { (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" identifier (argument_list "()" ( ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x17:\n              FUN_001e1e60();" case number_literal : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (iVar5 == 0) goto code_r0x001e2c6c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x001e2c6c;" goto statement_identifier ;)) (expression_statement "uVar7 = (uint)*pbVar9;" (assignment_expression "uVar7 = (uint)*pbVar9" identifier = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);" (assignment_expression "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar7 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar7 * 2)" ( (binary_expression "&DAT_002a3600 + uVar7 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0x100) == 0) break;" if (parenthesized_expression "((uVar2 & 0x100) == 0)" ( (binary_expression "(uVar2 & 0x100) == 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = (uint)pbVar4[3];" (assignment_expression "uVar10 = (uint)pbVar4[3]" identifier = (cast_expression "(uint)pbVar4[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar4[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar4 = pbVar9;" (assignment_expression "pbVar4 = pbVar9" identifier = identifier) ;) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);" (assignment_expression "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2)" identifier = (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar10 * 2)" * (cast_expression "(ushort *)(&DAT_002a3600 + uVar10 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a3600 + uVar10 * 2)" ( (binary_expression "&DAT_002a3600 + uVar10 * 2" (pointer_expression "&DAT_002a3600" & identifier) + (binary_expression "uVar10 * 2" identifier * number_literal)) ))))) ;) })) })) })) })) (goto_statement "goto LAB_001e2790;" goto statement_identifier ;)) (case_statement "case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;" case (char_literal "'c'" ' character ') : (expression_statement "pcVar6 = (char *)FUN_001e2520();" (assignment_expression "pcVar6 = (char *)FUN_001e2520()" identifier = (cast_expression "(char *)FUN_001e2520()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2520()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }" if (parenthesized_expression "((pcVar6 != (char *)0x0) && (*pcVar6 == 'c'))" ( (binary_expression "(pcVar6 != (char *)0x0) && (*pcVar6 == 'c')" (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar6 == 'c')" ( (binary_expression "*pcVar6 == 'c'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'c'" ' character ')) ))) )) (compound_statement "{\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }" { (expression_statement "pbVar9 = (byte *)FUN_001e2520();" (assignment_expression "pbVar9 = (byte *)FUN_001e2520()" identifier = (cast_expression "(byte *)FUN_001e2520()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2520()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return pbVar9;" return identifier ;) })) (labeled_statement "LAB_001e2790:\n    pbVar9 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (break_statement "break;" break ;)) (case_statement "case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;" case (char_literal "'e'" ' character ') : (expression_statement "pbVar9 = (byte *)FUN_001e2520();" (assignment_expression "pbVar9 = (byte *)FUN_001e2520()" identifier = (cast_expression "(byte *)FUN_001e2520()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2520()" identifier (argument_list "()" ( ))))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':" case (char_literal "'i'" ' character ') :) (case_statement "case '0':" case (char_literal "'0'" ' character ') :) (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':" case (char_literal "'2'" ' character ') :) (case_statement "case '3':" case (char_literal "'3'" ' character ') :) (case_statement "case '4':" case (char_literal "'4'" ' character ') :) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;" case (char_literal "'9'" ' character ') : (expression_statement "pbVar9 = (byte *)FUN_001e2220();" (assignment_expression "pbVar9 = (byte *)FUN_001e2220()" identifier = (cast_expression "(byte *)FUN_001e2220()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e2220()" identifier (argument_list "()" ( ))))) ;) (return_statement "return pbVar9;" return identifier ;)) (case_statement "case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();" case (char_literal "'n'" ' character ') : (expression_statement "pbVar9 = (byte *)(param_2 + 1);" (assignment_expression "pbVar9 = (byte *)(param_2 + 1)" identifier = (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) ;) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;)) })) (return_statement "return pbVar9;" return identifier ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( IDENT (ERROR IDENT) , (binary_expression IDENT * IDENT) , (ERROR IDENT) IDENT , (ERROR IDENT) IDENT ))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) , (binary_expression (binary_expression IDENT + LIT) != LIT)) ))) )) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) , (binary_expression (binary_expression IDENT + LIT) != LIT)) ))) )) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) & LIT) ))) )) - LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (switch_statement switch (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) (compound_statement { (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement default : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) })) })) })) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (return_statement return IDENT ;) }))
(ERROR "byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" (binary_expression "byte * __regparm3 FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" (identifier "byte") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_001e2720(undefined4 param_1,char *param_2,int param_3,char param_4)" (identifier "FUN_001e2720") (argument_list "(undefined4 param_1,char *param_2,int param_3,char param_4)" (( "(") (identifier "undefined4") (ERROR "param_1" (identifier "param_1")) (, ",") (binary_expression "char *param_2" (identifier "char") (* "*") (identifier "param_2")) (, ",") (ERROR "int" (identifier "int")) (identifier "param_3") (, ",") (ERROR "char" (identifier "char")) (identifier "param_4") () ")"))))) (compound_statement "{\n  char cVar1;\n  ushort uVar2;\n  ushort uVar3;\n  byte *pbVar4;\n  int iVar5;\n  char *pcVar6;\n  uint uVar7;\n  char cVar8;\n  byte *pbVar9;\n  uint uVar10;\n  bool bVar11;\n  byte bStack_21;\n  int iStack_20;\n  \n  if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;\n  switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }\n  return pbVar9;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "byte bStack_21;" (type_identifier "byte") (identifier "bStack_21") (; ";")) (declaration "int iStack_20;" (primitive_type "int") (identifier "iStack_20") (; ";")) (if_statement "if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;" (if "if") (parenthesized_expression "((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0'))" (( "(") (binary_expression "(param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')" (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(cVar1 = *param_2, cVar1 == '\0')" (( "(") (comma_expression "cVar1 = *param_2, cVar1 == '\0'" (assignment_expression "cVar1 = *param_2" (identifier "cVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (, ",") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_001e2790;" (goto "goto") (statement_identifier "LAB_001e2790") (; ";"))) (switch_statement "switch(cVar1) {\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }" (switch "switch") (parenthesized_expression "(cVar1)" (( "(") (identifier "cVar1") () ")")) (compound_statement "{\n  default:\n    goto LAB_001e2790;\n  case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;\n  case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;\n  case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;\n  case 'a':\n  case 'd':\n  case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;\n  case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;\n  case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;\n  case 'i':\n  case '0':\n  case '1':\n  case '2':\n  case '3':\n  case '4':\n  case '5':\n  case '6':\n  case '7':\n  case '8':\n  case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;\n  case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();\n  }" ({ "{") (case_statement "default:\n    goto LAB_001e2790;" (default "default") (: ":") (goto_statement "goto LAB_001e2790;" (goto "goto") (statement_identifier "LAB_001e2790") (; ";"))) (case_statement "case 'A':\n    if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }\n    FUN_001e1e60();\n    break;" (case "case") (char_literal "'A'" (' "'") (character "A") (' "'")) (: ":") (if_statement "if (param_4 == 'H') {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }\n    else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" (if "if") (parenthesized_expression "(param_4 == 'H')" (( "(") (binary_expression "param_4 == 'H'" (identifier "param_4") (== "==") (char_literal "'H'" (' "'") (character "H") (' "'"))) () ")")) (compound_statement "{\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      bVar11 = iStack_20 != 0;\n      iStack_20 = iStack_20 + -1;\n      if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }\n    }" ({ "{") (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e1d50()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e1d50()" (identifier "FUN_001e1d50") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }" (if "if") (parenthesized_expression "(pbVar9 == (byte *)0x0)" (( "(") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return (byte *)0x0;\n      }" ({ "{") (return_statement "return (byte *)0x0;" (return "return") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar11 = iStack_20 != 0;" (assignment_expression "bVar11 = iStack_20 != 0" (identifier "bVar11") (= "=") (binary_expression "iStack_20 != 0" (identifier "iStack_20") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" (identifier "iStack_20") (= "=") (binary_expression "iStack_20 + -1" (identifier "iStack_20") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (bVar11) {\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }" (if "if") (parenthesized_expression "(bVar11)" (( "(") (identifier "bVar11") () ")")) (compound_statement "{\n        do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);\n      }" ({ "{") (do_statement "do {\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        } while (bVar11);" (do "do") (compound_statement "{\n          FUN_001e2720(0);\n          FUN_001e1e60();\n          pbVar9 = (byte *)FUN_001e2720(0);\n          if (iStack_20 == 0) break;\n          FUN_001e1e60();\n          bVar11 = iStack_20 != 0;\n          iStack_20 = iStack_20 + -1;\n        }" ({ "{") (expression_statement "FUN_001e2720(0);" (call_expression "FUN_001e2720(0)" (identifier "FUN_001e2720") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar9 = (byte *)FUN_001e2720(0);" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e2720(0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2720(0)" (identifier "FUN_001e2720") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (iStack_20 == 0) break;" (if "if") (parenthesized_expression "(iStack_20 == 0)" (( "(") (binary_expression "iStack_20 == 0" (identifier "iStack_20") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar11 = iStack_20 != 0;" (assignment_expression "bVar11 = iStack_20 != 0" (identifier "bVar11") (= "=") (binary_expression "iStack_20 != 0" (identifier "iStack_20") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" (identifier "iStack_20") (= "=") (binary_expression "iStack_20 + -1" (identifier "iStack_20") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar11)" (( "(") (identifier "bVar11") () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" (else "else") (compound_statement "{\n      pbVar9 = (byte *)FUN_001e1d50();\n      if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n    }" ({ "{") (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e1d50()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e1d50()" (identifier "FUN_001e1d50") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar9 == (byte *)0x0) {\n        return (byte *)0x0;\n      }" (if "if") (parenthesized_expression "(pbVar9 == (byte *)0x0)" (( "(") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return (byte *)0x0;\n      }" ({ "{") (return_statement "return (byte *)0x0;" (return "return") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (while_statement "while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" (while "while") (parenthesized_expression "((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)))" (( "(") (parenthesized_expression "(iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))" (( "(") (binary_expression "iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (binary_expression "iStack_20 != 0" (identifier "iStack_20") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (( "(") (comma_expression "pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e2720(0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2720(0)" (identifier "FUN_001e2720") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (, ",") (binary_expression "iStack_20 + -1 != 0" (binary_expression "iStack_20 + -1" (identifier "iStack_20") (+ "+") (number_literal "-1")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")")) (compound_statement "{\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" ({ "{") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" (identifier "iStack_20") (= "=") (binary_expression "iStack_20 + -1" (identifier "iStack_20") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'N':\n    FUN_001e1e60();\n    pbVar9 = (byte *)FUN_001e2220();\n    break;" (case "case") (char_literal "'N'" (' "'") (character "N") (' "'")) (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar9 = (byte *)FUN_001e2220();" (assignment_expression "pbVar9 = (byte *)FUN_001e2220()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e2220()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2220()" (identifier "FUN_001e2220") (argument_list "()" (( "(") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'S':\n    pbVar9 = (byte *)FUN_001e1d50();\n    if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }\n    break;" (case "case") (char_literal "'S'" (' "'") (character "S") (' "'")) (: ":") (expression_statement "pbVar9 = (byte *)FUN_001e1d50();" (assignment_expression "pbVar9 = (byte *)FUN_001e1d50()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e1d50()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e1d50()" (identifier "FUN_001e1d50") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar9 != (byte *)0x0) {\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }" (if "if") (parenthesized_expression "(pbVar9 != (byte *)0x0)" (( "(") (binary_expression "pbVar9 != (byte *)0x0" (identifier "pbVar9") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (param_3 != 0) {\n        FUN_001e1e60();\n      }\n      FUN_001e1e60();\n      while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }\n      FUN_001e1e60();\n    }" ({ "{") (if_statement "if (param_3 != 0) {\n        FUN_001e1e60();\n      }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001e1e60();\n      }" ({ "{") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (while_statement "while ((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))) {\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" (while "while") (parenthesized_expression "((iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)))" (( "(") (parenthesized_expression "(iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0))" (( "(") (binary_expression "iStack_20 != 0 && (pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (binary_expression "iStack_20 != 0" (identifier "iStack_20") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0)" (( "(") (comma_expression "pbVar9 = (byte *)FUN_001e2720(0), iStack_20 + -1 != 0" (assignment_expression "pbVar9 = (byte *)FUN_001e2720(0)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e2720(0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2720(0)" (identifier "FUN_001e2720") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (, ",") (binary_expression "iStack_20 + -1 != 0" (binary_expression "iStack_20 + -1" (identifier "iStack_20") (+ "+") (number_literal "-1")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")")) (compound_statement "{\n        FUN_001e1e60();\n        iStack_20 = iStack_20 + -1;\n      }" ({ "{") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_20 = iStack_20 + -1;" (assignment_expression "iStack_20 = iStack_20 + -1" (identifier "iStack_20") (= "=") (binary_expression "iStack_20 + -1" (identifier "iStack_20") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'a':" (case "case") (char_literal "'a'" (' "'") (character "a") (' "'")) (: ":")) (case_statement "case 'd':" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":")) (case_statement "case 'w':\n    pcVar6 = (char *)FUN_001e1d50();\n    if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }\n    if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }\n    goto LAB_001e2790;" (case "case") (char_literal "'w'" (' "'") (character "w") (' "'")) (: ":") (expression_statement "pcVar6 = (char *)FUN_001e1d50();" (assignment_expression "pcVar6 = (char *)FUN_001e1d50()" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_001e1d50()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e1d50()" (identifier "FUN_001e1d50") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n      return (byte *)0x0;\n    }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return (byte *)0x0;\n    }" ({ "{") (return_statement "return (byte *)0x0;" (return "return") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (*pcVar6 == '_') {\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*pcVar6 == '_')" (( "(") (binary_expression "*pcVar6 == '_'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n      pbVar9 = (byte *)(pcVar6 + 1);\n      FUN_001e1e60();\n      if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }\n      if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "pbVar9 = (byte *)(pcVar6 + 1);" (assignment_expression "pbVar9 = (byte *)(pcVar6 + 1)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(pcVar6 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 1)" (( "(") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iStack_20 == 0) {\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }" (if "if") (parenthesized_expression "(iStack_20 == 0)" (( "(") (binary_expression "iStack_20 == 0" (identifier "iStack_20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x001e2c6c:\n        FUN_001e1e60();\n        if (cVar1 == 'a') {\n          return pbVar9;\n        }\n        FUN_001e21e0();\n        return pbVar9;\n      }" ({ "{") (labeled_statement "code_r0x001e2c6c:\n        FUN_001e1e60();" (statement_identifier "code_r0x001e2c6c") (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";"))) (if_statement "if (cVar1 == 'a') {\n          return pbVar9;\n        }" (if "if") (parenthesized_expression "(cVar1 == 'a')" (( "(") (binary_expression "cVar1 == 'a'" (identifier "cVar1") (== "==") (char_literal "'a'" (' "'") (character "a") (' "'"))) () ")")) (compound_statement "{\n          return pbVar9;\n        }" ({ "{") (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" (identifier "FUN_001e21e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (if_statement "if (pbVar9 != (byte *)0x0) {\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(pbVar9 != (byte *)0x0)" (( "(") (binary_expression "pbVar9 != (byte *)0x0" (identifier "pbVar9") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar7 = (uint)(byte)pcVar6[1];\n        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n        if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }\n      }" ({ "{") (expression_statement "uVar7 = (uint)(byte)pcVar6[1];" (assignment_expression "uVar7 = (uint)(byte)pcVar6[1]" (identifier "uVar7") (= "=") (cast_expression "(uint)(byte)pcVar6[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar6[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar6[1]" (identifier "pcVar6") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);" (assignment_expression "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar7 * 2)" (* "*") (cast_expression "(ushort *)(&DAT_002a3600 + uVar7 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a3600 + uVar7 * 2)" (( "(") (binary_expression "&DAT_002a3600 + uVar7 * 2" (pointer_expression "&DAT_002a3600" (& "&") (identifier "DAT_002a3600")) (+ "+") (binary_expression "uVar7 * 2" (identifier "uVar7") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (if_statement "if ((uVar2 & 0x100) != 0) {\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }" (if "if") (parenthesized_expression "((uVar2 & 0x100) != 0)" (( "(") (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" (( "(") (binary_expression "uVar2 & 0x100" (identifier "uVar2") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = (uint)(byte)pcVar6[2];\n          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          pbVar4 = pbVar9;\n          iVar5 = iStack_20 + -1;\n          while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }\n        }" ({ "{") (expression_statement "uVar10 = (uint)(byte)pcVar6[2];" (assignment_expression "uVar10 = (uint)(byte)pcVar6[2]" (identifier "uVar10") (= "=") (cast_expression "(uint)(byte)pcVar6[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar6[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar6[2]" (identifier "pcVar6") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);" (assignment_expression "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2)" (identifier "uVar3") (= "=") (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar10 * 2)" (* "*") (cast_expression "(ushort *)(&DAT_002a3600 + uVar10 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a3600 + uVar10 * 2)" (( "(") (binary_expression "&DAT_002a3600 + uVar10 * 2" (pointer_expression "&DAT_002a3600" (& "&") (identifier "DAT_002a3600")) (+ "+") (binary_expression "uVar10 * 2" (identifier "uVar10") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (expression_statement "pbVar4 = pbVar9;" (assignment_expression "pbVar4 = pbVar9" (identifier "pbVar4") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "iVar5 = iStack_20 + -1;" (assignment_expression "iVar5 = iStack_20 + -1" (identifier "iVar5") (= "=") (binary_expression "iStack_20 + -1" (identifier "iStack_20") (+ "+") (number_literal "-1"))) (; ";")) (while_statement "while ((uVar3 & 0x100) != 0) {\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }" (while "while") (parenthesized_expression "((uVar3 & 0x100) != 0)" (( "(") (binary_expression "(uVar3 & 0x100) != 0" (parenthesized_expression "(uVar3 & 0x100)" (( "(") (binary_expression "uVar3 & 0x100" (identifier "uVar3") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            cVar8 = (char)uVar7 + -0x30;\n            if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }\n            if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }\n            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;\n            pbVar9 = pbVar4 + 2;\n            if (pbVar9 == (byte *)0x0) break;\n            switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }\n            if (iVar5 == 0) goto code_r0x001e2c6c;\n            uVar7 = (uint)*pbVar9;\n            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);\n            if ((uVar2 & 0x100) == 0) break;\n            uVar10 = (uint)pbVar4[3];\n            pbVar4 = pbVar9;\n            iVar5 = iVar5 + -1;\n            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);\n          }" ({ "{") (expression_statement "cVar8 = (char)uVar7 + -0x30;" (assignment_expression "cVar8 = (char)uVar7 + -0x30" (identifier "cVar8") (= "=") (binary_expression "(char)uVar7 + -0x30" (cast_expression "(char)uVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar7")) (+ "+") (number_literal "-0x30"))) (; ";")) (if_statement "if ((uVar2 & 4) == 0) {\n              cVar8 = (char)uVar7 + -0x37;\n            }" (if "if") (parenthesized_expression "((uVar2 & 4) == 0)" (( "(") (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              cVar8 = (char)uVar7 + -0x37;\n            }" ({ "{") (expression_statement "cVar8 = (char)uVar7 + -0x37;" (assignment_expression "cVar8 = (char)uVar7 + -0x37" (identifier "cVar8") (= "=") (binary_expression "(char)uVar7 + -0x37" (cast_expression "(char)uVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar7")) (+ "+") (number_literal "-0x37"))) (; ";")) (} "}"))) (if_statement "if ((uVar3 & 4) == 0) {\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }\n            else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }" (if "if") (parenthesized_expression "((uVar3 & 4) == 0)" (( "(") (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" (( "(") (binary_expression "uVar3 & 4" (identifier "uVar3") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;\n            }" ({ "{") (expression_statement "bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;" (assignment_expression "bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" (identifier "bStack_21") (= "=") (binary_expression "((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37" (parenthesized_expression "((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U))" (( "(") (binary_expression "(char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (- "-") (parenthesized_expression "(-((uVar3 & 0x80) == 0) & 0x20U)" (( "(") (binary_expression "-((uVar3 & 0x80) == 0) & 0x20U" (unary_expression "-((uVar3 & 0x80) == 0)" (- "-") (parenthesized_expression "((uVar3 & 0x80) == 0)" (( "(") (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" (( "(") (binary_expression "uVar3 & 0x80" (identifier "uVar3") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")"))) (& "&") (number_literal "0x20U")) () ")"))) () ")")) (- "-") (number_literal "0x37"))) (; ";")) (} "}")) (else_clause "else {\n              bStack_21 = (char)uVar10 - 0x30;\n            }" (else "else") (compound_statement "{\n              bStack_21 = (char)uVar10 - 0x30;\n            }" ({ "{") (expression_statement "bStack_21 = (char)uVar10 - 0x30;" (assignment_expression "bStack_21 = (char)uVar10 - 0x30" (identifier "bStack_21") (= "=") (binary_expression "(char)uVar10 - 0x30" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (- "-") (number_literal "0x30"))) (; ";")) (} "}")))) (expression_statement "bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;" (assignment_expression "bStack_21 = (byte)((int)cVar8 << 4) | bStack_21" (identifier "bStack_21") (= "=") (binary_expression "(byte)((int)cVar8 << 4) | bStack_21" (call_expression "(byte)((int)cVar8 << 4)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((int)cVar8 << 4)" (( "(") (binary_expression "(int)cVar8 << 4" (cast_expression "(int)cVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar8")) (<< "<<") (number_literal "4")) () ")"))) (| "|") (identifier "bStack_21"))) (; ";")) (expression_statement "pbVar9 = pbVar4 + 2;" (assignment_expression "pbVar9 = pbVar4 + 2" (identifier "pbVar9") (= "=") (binary_expression "pbVar4 + 2" (identifier "pbVar4") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (pbVar9 == (byte *)0x0) break;" (if "if") (parenthesized_expression "(pbVar9 == (byte *)0x0)" (( "(") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (switch_statement "switch(bStack_21 - 9 & 0xff) {\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }" (switch "switch") (parenthesized_expression "(bStack_21 - 9 & 0xff)" (( "(") (binary_expression "bStack_21 - 9 & 0xff" (binary_expression "bStack_21 - 9" (identifier "bStack_21") (- "-") (number_literal "9")) (& "&") (number_literal "0xff")) () ")")) (compound_statement "{\n            case 0:\n              FUN_001e1e60();\n              break;\n            case 1:\n              FUN_001e1e60();\n              break;\n            case 2:\n              FUN_001e1e60();\n              break;\n            case 3:\n              FUN_001e1e60();\n              break;\n            case 4:\n              FUN_001e1e60();\n              break;\n            default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;\n            case 0x17:\n              FUN_001e1e60();\n            }" ({ "{") (case_statement "case 0:\n              FUN_001e1e60();\n              break;" (case "case") (number_literal "0") (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n              FUN_001e1e60();\n              break;" (case "case") (number_literal "1") (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n              FUN_001e1e60();\n              break;" (case "case") (number_literal "2") (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n              FUN_001e1e60();\n              break;" (case "case") (number_literal "3") (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n              FUN_001e1e60();\n              break;" (case "case") (number_literal "4") (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }\n              break;" (default "default") (: ":") (if_statement "if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }\n              else {\n                FUN_001e21e0();\n              }" (if "if") (parenthesized_expression "(((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0)" (( "(") (binary_expression "((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0" (parenthesized_expression "((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10)" (( "(") (binary_expression "(&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10" (subscript_expression "(&DAT_002a3600)[(uint)bStack_21 * 2]" (parenthesized_expression "(&DAT_002a3600)" (( "(") (pointer_expression "&DAT_002a3600" (& "&") (identifier "DAT_002a3600")) () ")")) ([ "[") (binary_expression "(uint)bStack_21 * 2" (cast_expression "(uint)bStack_21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_21")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                FUN_001e1e60();\n                FUN_001e21e0();\n              }" ({ "{") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" (identifier "FUN_001e21e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                FUN_001e21e0();\n              }" (else "else") (compound_statement "{\n                FUN_001e21e0();\n              }" ({ "{") (expression_statement "FUN_001e21e0();" (call_expression "FUN_001e21e0()" (identifier "FUN_001e21e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x17:\n              FUN_001e1e60();" (case "case") (number_literal "0x17") (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (if_statement "if (iVar5 == 0) goto code_r0x001e2c6c;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x001e2c6c;" (goto "goto") (statement_identifier "code_r0x001e2c6c") (; ";"))) (expression_statement "uVar7 = (uint)*pbVar9;" (assignment_expression "uVar7 = (uint)*pbVar9" (identifier "uVar7") (= "=") (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);" (assignment_expression "uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar7 * 2)" (* "*") (cast_expression "(ushort *)(&DAT_002a3600 + uVar7 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a3600 + uVar7 * 2)" (( "(") (binary_expression "&DAT_002a3600 + uVar7 * 2" (pointer_expression "&DAT_002a3600" (& "&") (identifier "DAT_002a3600")) (+ "+") (binary_expression "uVar7 * 2" (identifier "uVar7") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (if_statement "if ((uVar2 & 0x100) == 0) break;" (if "if") (parenthesized_expression "((uVar2 & 0x100) == 0)" (( "(") (binary_expression "(uVar2 & 0x100) == 0" (parenthesized_expression "(uVar2 & 0x100)" (( "(") (binary_expression "uVar2 & 0x100" (identifier "uVar2") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar10 = (uint)pbVar4[3];" (assignment_expression "uVar10 = (uint)pbVar4[3]" (identifier "uVar10") (= "=") (cast_expression "(uint)pbVar4[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar4[3]" (identifier "pbVar4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "pbVar4 = pbVar9;" (assignment_expression "pbVar4 = pbVar9" (identifier "pbVar4") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);" (assignment_expression "uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2)" (identifier "uVar3") (= "=") (pointer_expression "*(ushort *)(&DAT_002a3600 + uVar10 * 2)" (* "*") (cast_expression "(ushort *)(&DAT_002a3600 + uVar10 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a3600 + uVar10 * 2)" (( "(") (binary_expression "&DAT_002a3600 + uVar10 * 2" (pointer_expression "&DAT_002a3600" (& "&") (identifier "DAT_002a3600")) (+ "+") (binary_expression "uVar10 * 2" (identifier "uVar10") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_001e2790;" (goto "goto") (statement_identifier "LAB_001e2790") (; ";"))) (case_statement "case 'c':\n    pcVar6 = (char *)FUN_001e2520();\n    FUN_001e1e60();\n    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }\nLAB_001e2790:\n    pbVar9 = (byte *)0x0;\n    break;" (case "case") (char_literal "'c'" (' "'") (character "c") (' "'")) (: ":") (expression_statement "pcVar6 = (char *)FUN_001e2520();" (assignment_expression "pcVar6 = (char *)FUN_001e2520()" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_001e2520()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2520()" (identifier "FUN_001e2520") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }" (if "if") (parenthesized_expression "((pcVar6 != (char *)0x0) && (*pcVar6 == 'c'))" (( "(") (binary_expression "(pcVar6 != (char *)0x0) && (*pcVar6 == 'c')" (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar6 == 'c')" (( "(") (binary_expression "*pcVar6 == 'c'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (char_literal "'c'" (' "'") (character "c") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      pbVar9 = (byte *)FUN_001e2520();\n      FUN_001e1e60();\n      return pbVar9;\n    }" ({ "{") (expression_statement "pbVar9 = (byte *)FUN_001e2520();" (assignment_expression "pbVar9 = (byte *)FUN_001e2520()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e2520()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2520()" (identifier "FUN_001e2520") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (labeled_statement "LAB_001e2790:\n    pbVar9 = (byte *)0x0;" (statement_identifier "LAB_001e2790") (: ":") (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" (identifier "pbVar9") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'e':\n    pbVar9 = (byte *)FUN_001e2520();\n    break;" (case "case") (char_literal "'e'" (' "'") (character "e") (' "'")) (: ":") (expression_statement "pbVar9 = (byte *)FUN_001e2520();" (assignment_expression "pbVar9 = (byte *)FUN_001e2520()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e2520()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2520()" (identifier "FUN_001e2520") (argument_list "()" (( "(") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'i':" (case "case") (char_literal "'i'" (' "'") (character "i") (' "'")) (: ":")) (case_statement "case '0':" (case "case") (char_literal "'0'" (' "'") (character "0") (' "'")) (: ":")) (case_statement "case '1':" (case "case") (char_literal "'1'" (' "'") (character "1") (' "'")) (: ":")) (case_statement "case '2':" (case "case") (char_literal "'2'" (' "'") (character "2") (' "'")) (: ":")) (case_statement "case '3':" (case "case") (char_literal "'3'" (' "'") (character "3") (' "'")) (: ":")) (case_statement "case '4':" (case "case") (char_literal "'4'" (' "'") (character "4") (' "'")) (: ":")) (case_statement "case '5':" (case "case") (char_literal "'5'" (' "'") (character "5") (' "'")) (: ":")) (case_statement "case '6':" (case "case") (char_literal "'6'" (' "'") (character "6") (' "'")) (: ":")) (case_statement "case '7':" (case "case") (char_literal "'7'" (' "'") (character "7") (' "'")) (: ":")) (case_statement "case '8':" (case "case") (char_literal "'8'" (' "'") (character "8") (' "'")) (: ":")) (case_statement "case '9':\n    pbVar9 = (byte *)FUN_001e2220();\n    return pbVar9;" (case "case") (char_literal "'9'" (' "'") (character "9") (' "'")) (: ":") (expression_statement "pbVar9 = (byte *)FUN_001e2220();" (assignment_expression "pbVar9 = (byte *)FUN_001e2220()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_001e2220()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e2220()" (identifier "FUN_001e2220") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";"))) (case_statement "case 'n':\n    pbVar9 = (byte *)(param_2 + 1);\n    FUN_001e1e60();" (case "case") (char_literal "'n'" (' "'") (character "n") (' "'")) (: ":") (expression_statement "pbVar9 = (byte *)(param_2 + 1);" (assignment_expression "pbVar9 = (byte *)(param_2 + 1)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(param_2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

char * __regparm3 function_1(type_1 *decl,char *var_1,char *var_9,char var_3)

{
  int iVar1;
  type_2 var_12;
  type_2 var_13;
  type_3 var_14;
  type_4 uVar5;
  char cVar6;
  char *var_5;
  type_4 uVar8;
  type_3 *var_11;
  type_3 *var_15;
  bool bVar10;
  type_1 *in_stack_ffffffb4;
  char *in_stack_ffffffb8;
  char in_stack_ffffffbc;
  char var_2;
  char val;
  long var_7;
  
  if ((var_1 == (char *)0x0) || (var_2 = *var_1, var_2 == '\0')) goto _L224;
  switch(var_2) {
  default:
    goto _L224;
  case 'A':
    if (var_3 == 'H') {
      var_5 = var_4(var_1 + 1,&var_7);
      if (var_5 == (char *)0x0) {
        return (char *)0x0;
      }
      var_6(decl,"[");
      while (bVar10 = var_7 != 0, var_7 = var_7 + -1, bVar10) {
        var_5 = function_1(decl,var_5,(char *)0x0,'\0');
        var_6(decl,":");
        var_5 = function_1(decl,var_5,(char *)0x0,'\0');
        if (var_7 == 0) goto LAB_001e281e;
        var_6(decl,", ");
      }
    }
    else {
      var_5 = var_4(var_1 + 1,&var_7);
      if (var_5 == (char *)0x0) {
        return (char *)0x0;
      }
      var_6(decl,"[");
      while (iVar1 = var_7 + -1, bVar10 = var_7 != 0, var_7 = iVar1, bVar10) {
        var_5 = function_1(decl,var_5,(char *)0x0,'\0');
        if (var_7 == 0) goto LAB_001e281e;
        var_6(decl,", ");
      }
    }
    goto LAB_001e2826;
  case 'N':
    var_6(decl,"-");
    var_5 = var_8(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);
    break;
  case 'S':
    var_5 = var_4(var_1 + 1,&var_7);
    if (var_5 != (char *)0x0) {
      if (var_9 != (char *)0x0) {
        var_6(decl,var_9);
      }
      var_6(decl,"(");
      while (iVar1 = var_7 + -1, bVar10 = var_7 != 0, var_7 = iVar1, bVar10) {
        var_5 = function_1(decl,var_5,(char *)0x0,'\0');
        if (var_7 == 0) {
          var_7 = -1;
          break;
        }
        var_6(decl,", ");
      }
      var_6(decl,")");
    }
    break;
  case 'a':
  case 'd':
  case 'w':
    var_5 = var_4(var_1 + 1,&var_7);
    if (var_5 == (char *)0x0) {
      return (char *)0x0;
    }
    if (*var_5 == '_') {
      var_11 = (type_3 *)(var_5 + 1);
      var_6(decl,"\"");
      iVar1 = var_7 + -1;
      bVar10 = var_7 == 0;
      var_7 = iVar1;
      if (bVar10) {
LAB_001e2c6c:
        var_6(decl,"\"");
        if (var_2 == 'a') {
          return (char *)var_11;
        }
        var_10(decl,&var_2,1);
        return (char *)var_11;
      }
      if (var_11 != (type_3 *)0x0) {
        uVar5 = (type_4)(type_3)var_5[1];
        var_12 = _sch_istable[uVar5];
        if ((var_12 & 0x100) != 0) {
          uVar8 = (type_4)(type_3)var_5[2];
          var_13 = _sch_istable[uVar8];
          if ((var_13 & 0x100) != 0) {
            var_15 = var_11;
            do {
              cVar6 = (char)uVar5 + -0x30;
              if ((var_12 & 4) == 0) {
                cVar6 = (char)uVar5 + -0x37;
              }
              if ((var_13 & 4) == 0) {
                var_14 = ((char)uVar8 - (-((var_13 & 0x80) == 0) & 0x20U)) - 0x37;
              }
              else {
                var_14 = (char)uVar8 - 0x30;
              }
              val = (type_3)((int)cVar6 << 4) | var_14;
              var_11 = var_15 + 2;
              if (var_11 == (type_3 *)0x0) break;
              switch((type_3)val - 9 & 0xff) {
              case 0:
                var_6(decl,"\\t");
                break;
              case 1:
                var_6(decl,"\\n");
                break;
              case 2:
                var_6(decl,"\\v");
                break;
              case 3:
                var_6(decl,"\\f");
                break;
              case 4:
                var_6(decl,"\\r");
                break;
              default:
                if ((_sch_istable[(type_3)val] & 0x10) == 0) {
                  var_6(decl,"\\x");
                  var_10(decl,(char *)var_15,2);
                }
                else {
                  var_10(decl,&val,1);
                }
                break;
              case 0x17:
                var_6(decl," ");
              }
              iVar1 = var_7 + -1;
              bVar10 = var_7 == 0;
              var_7 = iVar1;
              if (bVar10) goto LAB_001e2c6c;
              uVar5 = (type_4)*var_11;
              var_12 = _sch_istable[uVar5];
              if ((var_12 & 0x100) == 0) break;
              uVar8 = (type_4)var_15[3];
              var_13 = _sch_istable[uVar8];
              var_15 = var_11;
            } while ((var_13 & 0x100) != 0);
          }
        }
      }
    }
    goto _L224;
  case 'c':
    var_5 = var_16(decl,var_1 + 1);
    var_6(decl,"+");
    if ((var_5 != (char *)0x0) && (*var_5 == 'c')) {
      var_5 = var_16(decl,var_5 + 1);
      var_6(decl,"i");
      return var_5;
    }
_L224:
    var_5 = (char *)0x0;
    break;
  case 'e':
    var_5 = var_16(decl,var_1 + 1);
    break;
  case 'i':
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    var_5 = var_8(in_stack_ffffffb4,in_stack_ffffffb8,in_stack_ffffffbc);
    return var_5;
  case 'n':
    var_5 = var_1 + 1;
    var_6(decl,"null");
  }
  return var_5;
LAB_001e281e:
  var_7 = -1;
LAB_001e2826:
  var_6(decl,"]");
  return var_5;
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (ERROR (identifier)) (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier))))) (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) consequence: (goto_statement label: (statement_identifier))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (char_literal (character)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (break_statement)) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (switch_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) body: (compound_statement (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (break_statement)) (case_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))))))))) (goto_statement label: (statement_identifier))) (case_statement value: (char_literal (character)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (break_statement)) (case_statement value: (char_literal (character)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (break_statement)) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character))) (case_statement value: (char_literal (character)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier))) (case_statement value: (char_literal (character)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier))))

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

byte * __regparm3 MASKED(undefined4 param_1,char *param_2,int param_3,char param_4)

{
  char cVar1;
  ushort uVar2;
  ushort uVar3;
  byte *pbVar4;
  int iVar5;
  char *pcVar6;
  uint uVar7;
  char cVar8;
  byte *pbVar9;
  uint uVar10;
  bool bVar11;
  byte bStack_21;
  int iStack_20;
  
  if ((param_2 == (char *)0x0) || (cVar1 = *param_2, cVar1 == '\0')) goto LAB_001e2790;
  switch(cVar1) {
  default:
    goto LAB_001e2790;
  case 'A':
    if (param_4 == 'H') {
      pbVar9 = (byte *)FUN_001e1d50();
      if (pbVar9 == (byte *)0x0) {
        return (byte *)0x0;
      }
      FUN_001e1e60();
      bVar11 = iStack_20 != 0;
      iStack_20 = iStack_20 + -1;
      if (bVar11) {
        do {
          MASKED(0);
          FUN_001e1e60();
          pbVar9 = (byte *)MASKED(0);
          if (iStack_20 == 0) break;
          FUN_001e1e60();
          bVar11 = iStack_20 != 0;
          iStack_20 = iStack_20 + -1;
        } while (bVar11);
      }
    }
    else {
      pbVar9 = (byte *)FUN_001e1d50();
      if (pbVar9 == (byte *)0x0) {
        return (byte *)0x0;
      }
      FUN_001e1e60();
      while ((iStack_20 != 0 && (pbVar9 = (byte *)MASKED(0), iStack_20 + -1 != 0))) {
        FUN_001e1e60();
        iStack_20 = iStack_20 + -1;
      }
    }
    FUN_001e1e60();
    break;
  case 'N':
    FUN_001e1e60();
    pbVar9 = (byte *)FUN_001e2220();
    break;
  case 'S':
    pbVar9 = (byte *)FUN_001e1d50();
    if (pbVar9 != (byte *)0x0) {
      if (param_3 != 0) {
        FUN_001e1e60();
      }
      FUN_001e1e60();
      while ((iStack_20 != 0 && (pbVar9 = (byte *)MASKED(0), iStack_20 + -1 != 0))) {
        FUN_001e1e60();
        iStack_20 = iStack_20 + -1;
      }
      FUN_001e1e60();
    }
    break;
  case 'a':
  case 'd':
  case 'w':
    pcVar6 = (char *)FUN_001e1d50();
    if (pcVar6 == (char *)0x0) {
      return (byte *)0x0;
    }
    if (*pcVar6 == '_') {
      pbVar9 = (byte *)(pcVar6 + 1);
      FUN_001e1e60();
      if (iStack_20 == 0) {
code_r0x001e2c6c:
        FUN_001e1e60();
        if (cVar1 == 'a') {
          return pbVar9;
        }
        FUN_001e21e0();
        return pbVar9;
      }
      if (pbVar9 != (byte *)0x0) {
        uVar7 = (uint)(byte)pcVar6[1];
        uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);
        if ((uVar2 & 0x100) != 0) {
          uVar10 = (uint)(byte)pcVar6[2];
          uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);
          pbVar4 = pbVar9;
          iVar5 = iStack_20 + -1;
          while ((uVar3 & 0x100) != 0) {
            cVar8 = (char)uVar7 + -0x30;
            if ((uVar2 & 4) == 0) {
              cVar8 = (char)uVar7 + -0x37;
            }
            if ((uVar3 & 4) == 0) {
              bStack_21 = ((char)uVar10 - (-((uVar3 & 0x80) == 0) & 0x20U)) - 0x37;
            }
            else {
              bStack_21 = (char)uVar10 - 0x30;
            }
            bStack_21 = (byte)((int)cVar8 << 4) | bStack_21;
            pbVar9 = pbVar4 + 2;
            if (pbVar9 == (byte *)0x0) break;
            switch(bStack_21 - 9 & 0xff) {
            case 0:
              FUN_001e1e60();
              break;
            case 1:
              FUN_001e1e60();
              break;
            case 2:
              FUN_001e1e60();
              break;
            case 3:
              FUN_001e1e60();
              break;
            case 4:
              FUN_001e1e60();
              break;
            default:
              if (((&DAT_002a3600)[(uint)bStack_21 * 2] & 0x10) == 0) {
                FUN_001e1e60();
                FUN_001e21e0();
              }
              else {
                FUN_001e21e0();
              }
              break;
            case 0x17:
              FUN_001e1e60();
            }
            if (iVar5 == 0) goto code_r0x001e2c6c;
            uVar7 = (uint)*pbVar9;
            uVar2 = *(ushort *)(&DAT_002a3600 + uVar7 * 2);
            if ((uVar2 & 0x100) == 0) break;
            uVar10 = (uint)pbVar4[3];
            pbVar4 = pbVar9;
            iVar5 = iVar5 + -1;
            uVar3 = *(ushort *)(&DAT_002a3600 + uVar10 * 2);
          }
        }
      }
    }
    goto LAB_001e2790;
  case 'c':
    pcVar6 = (char *)FUN_001e2520();
    FUN_001e1e60();
    if ((pcVar6 != (char *)0x0) && (*pcVar6 == 'c')) {
      pbVar9 = (byte *)FUN_001e2520();
      FUN_001e1e60();
      return pbVar9;
    }
LAB_001e2790:
    pbVar9 = (byte *)0x0;
    break;
  case 'e':
    pbVar9 = (byte *)FUN_001e2520();
    break;
  case 'i':
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    pbVar9 = (byte *)FUN_001e2220();
    return pbVar9;
  case 'n':
    pbVar9 = (byte *)(param_2 + 1);
    FUN_001e1e60();
  }
  return pbVar9;
}

