
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

char * _rl_untranslate_macro_value(char *seq,int use_escapes)

{
  ushort uVar1;
  ushort *puVar2;
  size_t sVar3;
  char *pcVar4;
  uint uVar5;
  ushort **ppuVar6;
  __int32_t **pp_Var7;
  char *pcVar8;
  char cVar9;
  uint uVar10;
  char *pcVar11;
  char *pcVar12;
  uint local_24;
  
  sVar3 = strlen(seq);
  pcVar4 = (char *)xmalloc(sVar3 * 7 + 1);
  uVar10 = (uint)(byte)*seq;
  pcVar11 = pcVar4;
  if (*seq == 0) {
    *pcVar4 = '\0';
    return pcVar4;
  }
  do {
    while( true ) {
      local_24._0_1_ = (byte)uVar10;
      uVar5 = (uint)(char)(byte)local_24;
      if (uVar5 - 0x80 < 0x80) {
        pcVar11[2] = '-';
        pcVar8 = pcVar11 + 3;
        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;
        pcVar11[0] = '\\';
        pcVar11[1] = 'M';
        pcVar12 = pcVar11 + 4;
        goto LAB_000d24b4;
      }
      if (uVar5 != 0x1b) break;
      pcVar8 = pcVar11 + 1;
      *pcVar11 = '\\';
      cVar9 = 'e';
      pcVar12 = pcVar11 + 2;
LAB_000d24cb:
      seq = (char *)((byte *)seq + 1);
      *pcVar8 = cVar9;
      uVar10 = (uint)(byte)*seq;
      pcVar11 = pcVar12;
      if (*seq == 0) goto LAB_000d2518;
    }
    if (0x1f < (byte)local_24) {
      if (uVar5 != 0x7f) {
        pcVar12 = pcVar11 + 1;
        pcVar8 = pcVar11;
        goto LAB_000d24bb;
      }
      pcVar8 = pcVar11 + 3;
      pcVar11[2] = '-';
      pcVar12 = pcVar11 + 4;
      pcVar11[0] = '\\';
      pcVar11[1] = 'C';
      cVar9 = '?';
      goto LAB_000d24cb;
    }
    *pcVar11 = '\\';
    if ((use_escapes == 0) || (6 < uVar5 - 7)) {
      pcVar8 = pcVar11 + 3;
      pcVar11[1] = 'C';
      pcVar11[2] = '-';
      local_24._0_1_ = (byte)local_24 | 0x40;
      ppuVar6 = __ctype_b_loc();
      puVar2 = *ppuVar6;
      uVar5 = (uint)(char)(byte)local_24;
      uVar1 = puVar2[uVar5];
      if ((uVar1 & 0x200) == 0) {
        local_24 = uVar5;
        if ((uVar1 & 0x100) == 0) {
          pcVar12 = pcVar11 + 4;
          uVar10 = uVar5;
          goto LAB_000d24bb;
        }
      }
      else {
        pp_Var7 = __ctype_toupper_loc();
        local_24 = (*pp_Var7)[uVar5];
        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)
           ) {
          pcVar12 = pcVar11 + 4;
          pp_Var7 = __ctype_toupper_loc();
          uVar5 = (*pp_Var7)[uVar5];
          goto LAB_000d24b4;
        }
      }
      pp_Var7 = __ctype_tolower_loc();
      pcVar12 = pcVar11 + 4;
      uVar5 = (*pp_Var7)[local_24];
    }
    else {
      pcVar8 = pcVar11 + 1;
      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);
      pcVar12 = pcVar11 + 2;
    }
LAB_000d24b4:
    uVar10 = uVar5;
    if (uVar5 != 0x1b) {
LAB_000d24bb:
      cVar9 = (char)uVar10;
      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {
        *pcVar8 = '\\';
        pcVar8 = pcVar12;
        pcVar12 = pcVar12 + 1;
      }
      goto LAB_000d24cb;
    }
    seq = (char *)((byte *)seq + 1);
    *pcVar8 = '\\';
    pcVar11 = pcVar12 + 1;
    *pcVar12 = 'e';
    uVar10 = (uint)(byte)*seq;
  } while (*seq != 0);
LAB_000d2518:
  *pcVar11 = '\0';
  return pcVar4;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined2 * _rl_untranslate_macro_value(byte *param_1,int param_2)

{
  ushort uVar1;
  ushort *puVar2;
  size_t sVar3;
  undefined2 *puVar4;
  uint uVar5;
  ushort **ppuVar6;
  __int32_t **pp_Var7;
  undefined2 *puVar8;
  undefined1 uVar9;
  uint uVar10;
  undefined2 *puVar11;
  undefined2 *puVar12;
  uint local_24;
  
  sVar3 = strlen((char *)param_1);
  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);
  uVar10 = (uint)*param_1;
  puVar12 = puVar4;
  if (*param_1 == 0) {
    *(undefined1 *)puVar4 = 0;
    return puVar4;
  }
  do {
    while( true ) {
      local_24._0_1_ = (byte)uVar10;
      uVar5 = (uint)(char)(byte)local_24;
      if (uVar5 - 0x80 < 0x80) {
        *(undefined1 *)(puVar12 + 1) = 0x2d;
        puVar8 = (undefined2 *)((int)puVar12 + 3);
        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;
        *puVar12 = 0x4d5c;
        puVar11 = puVar12 + 2;
        goto LAB_000d24b4;
      }
      if (uVar5 != 0x1b) break;
      puVar8 = (undefined2 *)((int)puVar12 + 1);
      *(undefined1 *)puVar12 = 0x5c;
      uVar9 = 0x65;
      puVar11 = puVar12 + 1;
LAB_000d24cb:
      param_1 = param_1 + 1;
      *(undefined1 *)puVar8 = uVar9;
      uVar10 = (uint)*param_1;
      puVar12 = puVar11;
      if (*param_1 == 0) goto LAB_000d2518;
    }
    if (0x1f < (byte)local_24) {
      if (uVar5 != 0x7f) {
        puVar11 = (undefined2 *)((int)puVar12 + 1);
        puVar8 = puVar12;
        goto LAB_000d24bb;
      }
      puVar8 = (undefined2 *)((int)puVar12 + 3);
      *(undefined1 *)(puVar12 + 1) = 0x2d;
      puVar11 = puVar12 + 2;
      *puVar12 = 0x435c;
      uVar9 = 0x3f;
      goto LAB_000d24cb;
    }
    *(undefined1 *)puVar12 = 0x5c;
    if ((param_2 == 0) || (6 < uVar5 - 7)) {
      puVar8 = (undefined2 *)((int)puVar12 + 3);
      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;
      local_24._0_1_ = (byte)local_24 | 0x40;
      ppuVar6 = __ctype_b_loc();
      puVar2 = *ppuVar6;
      uVar5 = (uint)(char)(byte)local_24;
      uVar1 = puVar2[uVar5];
      if ((uVar1 & 0x200) == 0) {
        local_24 = uVar5;
        if ((uVar1 & 0x100) == 0) {
          puVar11 = puVar12 + 2;
          uVar10 = uVar5;
          goto LAB_000d24bb;
        }
      }
      else {
        pp_Var7 = __ctype_toupper_loc();
        local_24 = (*pp_Var7)[uVar5];
        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)
           ) {
          puVar11 = puVar12 + 2;
          pp_Var7 = __ctype_toupper_loc();
          uVar5 = (*pp_Var7)[uVar5];
          goto LAB_000d24b4;
        }
      }
      pp_Var7 = __ctype_tolower_loc();
      puVar11 = puVar12 + 2;
      uVar5 = (*pp_Var7)[local_24];
    }
    else {
      puVar8 = (undefined2 *)((int)puVar12 + 1);
      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);
      puVar11 = puVar12 + 1;
    }
LAB_000d24b4:
    uVar10 = uVar5;
    if (uVar5 != 0x1b) {
LAB_000d24bb:
      uVar9 = (undefined1)uVar10;
      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {
        *(undefined1 *)puVar8 = 0x5c;
        puVar8 = puVar11;
        puVar11 = (undefined2 *)((int)puVar11 + 1);
      }
      goto LAB_000d24cb;
    }
    param_1 = param_1 + 1;
    *(undefined1 *)puVar8 = 0x5c;
    puVar12 = (undefined2 *)((int)puVar11 + 1);
    *(undefined1 *)puVar11 = 0x65;
    uVar10 = (uint)*param_1;
  } while (*param_1 != 0);
LAB_000d2518:
  *(undefined1 *)puVar12 = 0;
  return puVar4;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00031ed0
ADD EBX,0x77ba7
SUB ESP,0x28
MOV ECX,dword ptr [ESP + 0x3c]
PUSH ECX
MOV dword ptr [ESP + 0x40],ECX
CALL 0x0002f760
LEA EDX,[EAX*0x8 + 0x0]
SUB EDX,EAX
ADD EDX,0x1
MOV dword ptr [ESP],EDX
CALL 0x00099200
MOV ECX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0x10
MOVZX EDX,byte ptr [ECX]
TEST DL,DL
JZ 0x000d2648
MOV EDI,EAX
MOV ESI,ECX
JMP 0x000d24d8
MOV EDX,0x4d5c
MOV byte ptr [EDI + 0x2],0x2d
LEA ECX,[EDI + 0x3]
AND AL,0x7f
MOV word ptr [EDI],DX
LEA EBP,[EDI + 0x4]
MOV EDX,EAX
CMP EAX,0x1b
JZ 0x000d2500
CMP EAX,0x5c
JZ 0x000d24c5
CMP EAX,0x22
JNZ 0x000d2540
MOV byte ptr [ECX],0x5c
LEA EDI,[EBP + 0x1]
ADD ESI,0x1
MOV byte ptr [EBP],DL
MOVZX EDX,byte ptr [ESI]
TEST DL,DL
JZ 0x000d2518
MOVSX EAX,DL
LEA ECX,[EAX + -0x80]
CMP ECX,0x7f
JBE 0x000d24a0
CMP EAX,0x1b
JZ 0x000d2530
CMP DL,0x1f
JBE 0x000d2550
CMP EAX,0x7f
JZ 0x000d25d0
LEA EBP,[EDI + 0x1]
MOV ECX,EDI
JMP 0x000d24bb
MOV EDX,0x65
ADD ESI,0x1
MOV byte ptr [ECX],0x5c
LEA EDI,[EBP + 0x1]
MOV byte ptr [EBP],DL
MOVZX EDX,byte ptr [ESI]
TEST DL,DL
JNZ 0x000d24d8
MOV byte ptr [EDI],0x0
MOV EAX,dword ptr [ESP + 0x4]
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EBP,[EDI + 0x1]
MOV byte ptr [EDI],0x5c
MOV EDX,0x65
ADD EDI,0x2
JMP 0x000d24cb
MOV EDI,EBP
MOV EBP,ECX
JMP 0x000d24cb
MOV EBP,dword ptr [ESP + 0x34]
MOV byte ptr [EDI],0x5c
TEST EBP,EBP
JZ 0x000d2567
SUB EAX,0x7
CMP EAX,0x6
JBE 0x000d2630
LEA ECX,[EDI + 0x3]
OR EDX,0x40
MOV dword ptr [ESP + 0xc],ECX
MOV ECX,0x2d43
MOV word ptr [EDI + 0x1],CX
MOV byte ptr [ESP + 0x8],DL
CALL 0x0002fd70
MOV ECX,dword ptr [ESP + 0xc]
MOV EBP,dword ptr [EAX]
MOVSX EAX,byte ptr [ESP + 0x8]
MOV EDX,EAX
MOV dword ptr [ESP + 0x8],EAX
MOVZX EAX,word ptr [EBP + EAX*0x2]
TEST AH,0x2
JNZ 0x000d25f0
TEST AH,0x1
JZ 0x000d265b
MOV dword ptr [ESP + 0xc],ECX
CALL 0x0002fd60
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
LEA EBP,[EDI + 0x4]
MOV EAX,dword ptr [EAX]
SHL EDX,0x2
MOV EAX,dword ptr [EAX + EDX*0x1]
JMP 0x000d24b4
MOV EAX,0x435c
LEA EBP,[EDI + 0x3]
MOV byte ptr [EDI + 0x2],0x2d
ADD EDI,0x4
MOV word ptr [EDI + -0x4],AX
MOV EDX,0x3f
JMP 0x000d24cb
CALL 0x0002f040
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + ECX*0x4]
MOV ECX,dword ptr [ESP + 0xc]
TEST EDX,0xffffff00
JZ 0x000d2667
MOV dword ptr [ESP + 0xc],ECX
LEA EBP,[EDI + 0x4]
CALL 0x0002f040
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + ECX*0x4]
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x000d24b4
LEA ECX,[EDI + 0x1]
MOV EAX,dword ptr [EBX + EAX*0x4 + 0xfffbc464]
LEA EBP,[EDI + 0x2]
JMP 0x000d24b4
MOV EDI,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESP + 0x4]
MOV byte ptr [EDI],0x0
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EBP,[EDI + 0x4]
MOV EAX,dword ptr [ESP + 0x8]
JMP 0x000d24bb
TEST byte ptr [EBP + EDX*0x2 + 0x1],0x1
JZ 0x000d260a
MOV dword ptr [ESP + 0xc],ECX
MOV dword ptr [ESP + 0x8],EDX
JMP 0x000d25ab
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined2 * _rl_untranslate_macro_value(byte *param_1,int param_2)\n\n{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}\n\n" comment (function_definition "undefined2 * _rl_untranslate_macro_value(byte *param_1,int param_2)\n\n{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}" type_identifier (pointer_declarator "* _rl_untranslate_macro_value(byte *param_1,int param_2)" * (function_declarator "_rl_untranslate_macro_value(byte *param_1,int param_2)" identifier (parameter_list "(byte *param_1,int param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "ushort *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined2 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "__int32_t **pp_Var7;" type_identifier (pointer_declarator "**pp_Var7" * (pointer_declarator "*pp_Var7" * identifier)) ;) (declaration "undefined2 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined2 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined2 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "sVar3 = strlen((char *)param_1);" (assignment_expression "sVar3 = strlen((char *)param_1)" identifier = (call_expression "strlen((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);" (assignment_expression "puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1)" identifier = (cast_expression "(undefined2 *)xmalloc(sVar3 * 7 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3 * 7 + 1)" identifier (argument_list "(sVar3 * 7 + 1)" ( (binary_expression "sVar3 * 7 + 1" (binary_expression "sVar3 * 7" identifier * number_literal) + number_literal) ))))) ;) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar12 = puVar4;" (assignment_expression "puVar12 = puVar4" identifier = identifier) ;) (if_statement "if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }" { (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return puVar4;" return identifier ;) })) (do_statement "do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);" do (compound_statement "{\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  }" { (while_statement "while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }" { (expression_statement "local_24._0_1_ = (byte)uVar10;" (assignment_expression "local_24._0_1_ = (byte)uVar10" (field_expression "local_24._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" identifier = (cast_expression "(uint)(char)(byte)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (if_statement "if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }" if (parenthesized_expression "(uVar5 - 0x80 < 0x80)" ( (binary_expression "uVar5 - 0x80 < 0x80" (binary_expression "uVar5 - 0x80" identifier - number_literal) < number_literal) )) (compound_statement "{\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }" { (expression_statement "*(undefined1 *)(puVar12 + 1) = 0x2d;" (assignment_expression "*(undefined1 *)(puVar12 + 1) = 0x2d" (pointer_expression "*(undefined1 *)(puVar12 + 1)" * (cast_expression "(undefined1 *)(puVar12 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 1)" ( (binary_expression "puVar12 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 3)" ( (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;" (assignment_expression "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f" identifier = (binary_expression "(int)(char)(byte)local_24 & 0xffffff7f" (cast_expression "(int)(char)(byte)local_24" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier))) & number_literal)) ;) (expression_statement "*puVar12 = 0x4d5c;" (assignment_expression "*puVar12 = 0x4d5c" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_000d24b4;" goto statement_identifier ;) })) (if_statement "if (uVar5 != 0x1b) break;" if (parenthesized_expression "(uVar5 != 0x1b)" ( (binary_expression "uVar5 != 0x1b" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)puVar12 = 0x5c;" (assignment_expression "*(undefined1 *)puVar12 = 0x5c" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar9 = 0x65;" (assignment_expression "uVar9 = 0x65" identifier = number_literal) ;) (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000d24cb:\n      param_1 = param_1 + 1;" statement_identifier : (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) (expression_statement "*(undefined1 *)puVar8 = uVar9;" (assignment_expression "*(undefined1 *)puVar8 = uVar9" (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) (if_statement "if (*param_1 == 0) goto LAB_000d2518;" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (goto_statement "goto LAB_000d2518;" goto statement_identifier ;)) })) (if_statement "if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }" if (parenthesized_expression "(0x1f < (byte)local_24)" ( (binary_expression "0x1f < (byte)local_24" number_literal < (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)) )) (compound_statement "{\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }" { (if_statement "if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }" if (parenthesized_expression "(uVar5 != 0x7f)" ( (binary_expression "uVar5 != 0x7f" identifier != number_literal) )) (compound_statement "{\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }" { (expression_statement "puVar11 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar11 = (undefined2 *)((int)puVar12 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar8 = puVar12;" (assignment_expression "puVar8 = puVar12" identifier = identifier) ;) (goto_statement "goto LAB_000d24bb;" goto statement_identifier ;) })) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 3)" ( (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(puVar12 + 1) = 0x2d;" (assignment_expression "*(undefined1 *)(puVar12 + 1) = 0x2d" (pointer_expression "*(undefined1 *)(puVar12 + 1)" * (cast_expression "(undefined1 *)(puVar12 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 1)" ( (binary_expression "puVar12 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "*puVar12 = 0x435c;" (assignment_expression "*puVar12 = 0x435c" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_000d24cb;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)puVar12 = 0x5c;" (assignment_expression "*(undefined1 *)puVar12 = 0x5c" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" if (parenthesized_expression "((param_2 == 0) || (6 < uVar5 - 7))" ( (binary_expression "(param_2 == 0) || (6 < uVar5 - 7)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(6 < uVar5 - 7)" ( (binary_expression "6 < uVar5 - 7" number_literal < (binary_expression "uVar5 - 7" identifier - number_literal)) ))) )) (compound_statement "{\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }" { (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 3)" ( (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined2 *)((int)puVar12 + 1) = 0x2d43;" (assignment_expression "*(undefined2 *)((int)puVar12 + 1) = 0x2d43" (pointer_expression "*(undefined2 *)((int)puVar12 + 1)" * (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_24._0_1_ = (byte)local_24 | 0x40;" (assignment_expression "local_24._0_1_ = (byte)local_24 | 0x40" (field_expression "local_24._0_1_" identifier . field_identifier) = (binary_expression "(byte)local_24 | 0x40" (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal)) ;) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = *ppuVar6;" (assignment_expression "puVar2 = *ppuVar6" identifier = (pointer_expression "*ppuVar6" * identifier)) ;) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" identifier = (cast_expression "(uint)(char)(byte)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (expression_statement "uVar1 = puVar2[uVar5];" (assignment_expression "uVar1 = puVar2[uVar5]" identifier = (subscript_expression "puVar2[uVar5]" identifier [ identifier ])) ;) (if_statement "if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" if (parenthesized_expression "((uVar1 & 0x200) == 0)" ( (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }" { (expression_statement "local_24 = uVar5;" (assignment_expression "local_24 = uVar5" identifier = identifier) ;) (if_statement "if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" if (parenthesized_expression "((uVar1 & 0x100) == 0)" ( (binary_expression "(uVar1 & 0x100) == 0" (parenthesized_expression "(uVar1 & 0x100)" ( (binary_expression "uVar1 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" { (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" identifier = identifier) ;) (goto_statement "goto LAB_000d24bb;" goto statement_identifier ;) })) }) (else_clause "else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" else (compound_statement "{\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" { (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_24 = (*pp_Var7)[uVar5];" (assignment_expression "local_24 = (*pp_Var7)[uVar5]" identifier = (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) (if_statement "if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" if (parenthesized_expression "(((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           )" ( (binary_expression "((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" (parenthesized_expression "((local_24 & 0xffffff00) != 0)" ( (binary_expression "(local_24 & 0xffffff00) != 0" (parenthesized_expression "(local_24 & 0xffffff00)" ( (binary_expression "local_24 & 0xffffff00" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" ( (binary_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0" (parenthesized_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1)" ( (binary_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1" (pointer_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1)" * (cast_expression "(byte *)((int)puVar2 + local_24 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + local_24 * 2 + 1)" ( (binary_expression "(int)puVar2 + local_24 * 2 + 1" (binary_expression "(int)puVar2 + local_24 * 2" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "local_24 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" { (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (*pp_Var7)[uVar5];" (assignment_expression "uVar5 = (*pp_Var7)[uVar5]" identifier = (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) (goto_statement "goto LAB_000d24b4;" goto statement_identifier ;) })) }))) (expression_statement "pp_Var7 = __ctype_tolower_loc();" (assignment_expression "pp_Var7 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar5 = (*pp_Var7)[local_24];" (assignment_expression "uVar5 = (*pp_Var7)[local_24]" identifier = (subscript_expression "(*pp_Var7)[local_24]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) }) (else_clause "else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" else (compound_statement "{\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" { (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);" (assignment_expression "uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" * (cast_expression "(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00106464 + (uVar5 - 7) * 4)" ( (binary_expression "&DAT_00106464 + (uVar5 - 7) * 4" (pointer_expression "&DAT_00106464" & identifier) + (binary_expression "(uVar5 - 7) * 4" (parenthesized_expression "(uVar5 - 7)" ( (binary_expression "uVar5 - 7" identifier - number_literal) )) * number_literal)) ))))) ;) (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }))) (labeled_statement "LAB_000d24b4:\n    uVar10 = uVar5;" statement_identifier : (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" identifier = identifier) ;)) (if_statement "if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }" if (parenthesized_expression "(uVar5 != 0x1b)" ( (binary_expression "uVar5 != 0x1b" identifier != number_literal) )) (compound_statement "{\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }" { (labeled_statement "LAB_000d24bb:\n      uVar9 = (undefined1)uVar10;" statement_identifier : (expression_statement "uVar9 = (undefined1)uVar10;" (assignment_expression "uVar9 = (undefined1)uVar10" identifier = (cast_expression "(undefined1)uVar10" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (if_statement "if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }" if (parenthesized_expression "((uVar5 == 0x5c) || (uVar5 == 0x22))" ( (binary_expression "(uVar5 == 0x5c) || (uVar5 == 0x22)" (parenthesized_expression "(uVar5 == 0x5c)" ( (binary_expression "uVar5 == 0x5c" identifier == number_literal) )) || (parenthesized_expression "(uVar5 == 0x22)" ( (binary_expression "uVar5 == 0x22" identifier == number_literal) ))) )) (compound_statement "{\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }" { (expression_statement "*(undefined1 *)puVar8 = 0x5c;" (assignment_expression "*(undefined1 *)puVar8 = 0x5c" (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar8 = puVar11;" (assignment_expression "puVar8 = puVar11" identifier = identifier) ;) (expression_statement "puVar11 = (undefined2 *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (undefined2 *)((int)puVar11 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar11 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_000d24cb;" goto statement_identifier ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar8 = 0x5c;" (assignment_expression "*(undefined1 *)puVar8 = 0x5c" (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar12 = (undefined2 *)((int)puVar11 + 1);" (assignment_expression "puVar12 = (undefined2 *)((int)puVar11 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar11 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)puVar11 = 0x65;" (assignment_expression "*(undefined1 *)puVar11 = 0x65" (pointer_expression "*(undefined1 *)puVar11" * (cast_expression "(undefined1 *)puVar11" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) ;) (labeled_statement "LAB_000d2518:\n  *(undefined1 *)puVar12 = 0;" statement_identifier : (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;)) (return_statement "return puVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * _rl_untranslate_macro_value(char *seq,int use_escapes)\n\n{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  char *pcVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  char *pcVar8;\n  char cVar9;\n  uint uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  uint local_24;\n  \n  sVar3 = strlen(seq);\n  pcVar4 = (char *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)(byte)*seq;\n  pcVar11 = pcVar4;\n  if (*seq == 0) {\n    *pcVar4 = '\0';\n    return pcVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      pcVar8 = pcVar11 + 1;\n      *pcVar11 = '\\';\n      cVar9 = 'e';\n      pcVar12 = pcVar11 + 2;\nLAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);\n      *pcVar8 = cVar9;\n      uVar10 = (uint)(byte)*seq;\n      pcVar11 = pcVar12;\n      if (*seq == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }\n      pcVar8 = pcVar11 + 3;\n      pcVar11[2] = '-';\n      pcVar12 = pcVar11 + 4;\n      pcVar11[0] = '\\';\n      pcVar11[1] = 'C';\n      cVar9 = '?';\n      goto LAB_000d24cb;\n    }\n    *pcVar11 = '\\';\n    if ((use_escapes == 0) || (6 < uVar5 - 7)) {\n      pcVar8 = pcVar11 + 3;\n      pcVar11[1] = 'C';\n      pcVar11[2] = '-';\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      pcVar12 = pcVar11 + 4;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      cVar9 = (char)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }\n      goto LAB_000d24cb;\n    }\n    seq = (char *)((byte *)seq + 1);\n    *pcVar8 = '\\';\n    pcVar11 = pcVar12 + 1;\n    *pcVar12 = 'e';\n    uVar10 = (uint)(byte)*seq;\n  } while (*seq != 0);\nLAB_000d2518:\n  *pcVar11 = '\0';\n  return pcVar4;\n}\n\n" comment (function_definition "char * _rl_untranslate_macro_value(char *seq,int use_escapes)\n\n{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  char *pcVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  char *pcVar8;\n  char cVar9;\n  uint uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  uint local_24;\n  \n  sVar3 = strlen(seq);\n  pcVar4 = (char *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)(byte)*seq;\n  pcVar11 = pcVar4;\n  if (*seq == 0) {\n    *pcVar4 = '\0';\n    return pcVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      pcVar8 = pcVar11 + 1;\n      *pcVar11 = '\\';\n      cVar9 = 'e';\n      pcVar12 = pcVar11 + 2;\nLAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);\n      *pcVar8 = cVar9;\n      uVar10 = (uint)(byte)*seq;\n      pcVar11 = pcVar12;\n      if (*seq == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }\n      pcVar8 = pcVar11 + 3;\n      pcVar11[2] = '-';\n      pcVar12 = pcVar11 + 4;\n      pcVar11[0] = '\\';\n      pcVar11[1] = 'C';\n      cVar9 = '?';\n      goto LAB_000d24cb;\n    }\n    *pcVar11 = '\\';\n    if ((use_escapes == 0) || (6 < uVar5 - 7)) {\n      pcVar8 = pcVar11 + 3;\n      pcVar11[1] = 'C';\n      pcVar11[2] = '-';\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      pcVar12 = pcVar11 + 4;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      cVar9 = (char)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }\n      goto LAB_000d24cb;\n    }\n    seq = (char *)((byte *)seq + 1);\n    *pcVar8 = '\\';\n    pcVar11 = pcVar12 + 1;\n    *pcVar12 = 'e';\n    uVar10 = (uint)(byte)*seq;\n  } while (*seq != 0);\nLAB_000d2518:\n  *pcVar11 = '\0';\n  return pcVar4;\n}" primitive_type (pointer_declarator "* _rl_untranslate_macro_value(char *seq,int use_escapes)" * (function_declarator "_rl_untranslate_macro_value(char *seq,int use_escapes)" identifier (parameter_list "(char *seq,int use_escapes)" ( (parameter_declaration "char *seq" primitive_type (pointer_declarator "*seq" * identifier)) , (parameter_declaration "int use_escapes" primitive_type identifier) )))) (compound_statement "{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  char *pcVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  char *pcVar8;\n  char cVar9;\n  uint uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  uint local_24;\n  \n  sVar3 = strlen(seq);\n  pcVar4 = (char *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)(byte)*seq;\n  pcVar11 = pcVar4;\n  if (*seq == 0) {\n    *pcVar4 = '\0';\n    return pcVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      pcVar8 = pcVar11 + 1;\n      *pcVar11 = '\\';\n      cVar9 = 'e';\n      pcVar12 = pcVar11 + 2;\nLAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);\n      *pcVar8 = cVar9;\n      uVar10 = (uint)(byte)*seq;\n      pcVar11 = pcVar12;\n      if (*seq == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }\n      pcVar8 = pcVar11 + 3;\n      pcVar11[2] = '-';\n      pcVar12 = pcVar11 + 4;\n      pcVar11[0] = '\\';\n      pcVar11[1] = 'C';\n      cVar9 = '?';\n      goto LAB_000d24cb;\n    }\n    *pcVar11 = '\\';\n    if ((use_escapes == 0) || (6 < uVar5 - 7)) {\n      pcVar8 = pcVar11 + 3;\n      pcVar11[1] = 'C';\n      pcVar11[2] = '-';\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      pcVar12 = pcVar11 + 4;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      cVar9 = (char)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }\n      goto LAB_000d24cb;\n    }\n    seq = (char *)((byte *)seq + 1);\n    *pcVar8 = '\\';\n    pcVar11 = pcVar12 + 1;\n    *pcVar12 = 'e';\n    uVar10 = (uint)(byte)*seq;\n  } while (*seq != 0);\nLAB_000d2518:\n  *pcVar11 = '\0';\n  return pcVar4;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "ushort *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "__int32_t **pp_Var7;" type_identifier (pointer_declarator "**pp_Var7" * (pointer_declarator "*pp_Var7" * identifier)) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "sVar3 = strlen(seq);" (assignment_expression "sVar3 = strlen(seq)" identifier = (call_expression "strlen(seq)" identifier (argument_list "(seq)" ( identifier )))) ;) (expression_statement "pcVar4 = (char *)xmalloc(sVar3 * 7 + 1);" (assignment_expression "pcVar4 = (char *)xmalloc(sVar3 * 7 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar3 * 7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3 * 7 + 1)" identifier (argument_list "(sVar3 * 7 + 1)" ( (binary_expression "sVar3 * 7 + 1" (binary_expression "sVar3 * 7" identifier * number_literal) + number_literal) ))))) ;) (expression_statement "uVar10 = (uint)(byte)*seq;" (assignment_expression "uVar10 = (uint)(byte)*seq" identifier = (binary_expression "(uint)(byte)*seq" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "pcVar11 = pcVar4;" (assignment_expression "pcVar11 = pcVar4" identifier = identifier) ;) (if_statement "if (*seq == 0) {\n    *pcVar4 = '\0';\n    return pcVar4;\n  }" if (parenthesized_expression "(*seq == 0)" ( (binary_expression "*seq == 0" (pointer_expression "*seq" * identifier) == number_literal) )) (compound_statement "{\n    *pcVar4 = '\0';\n    return pcVar4;\n  }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return pcVar4;" return identifier ;) })) (do_statement "do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      pcVar8 = pcVar11 + 1;\n      *pcVar11 = '\\';\n      cVar9 = 'e';\n      pcVar12 = pcVar11 + 2;\nLAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);\n      *pcVar8 = cVar9;\n      uVar10 = (uint)(byte)*seq;\n      pcVar11 = pcVar12;\n      if (*seq == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }\n      pcVar8 = pcVar11 + 3;\n      pcVar11[2] = '-';\n      pcVar12 = pcVar11 + 4;\n      pcVar11[0] = '\\';\n      pcVar11[1] = 'C';\n      cVar9 = '?';\n      goto LAB_000d24cb;\n    }\n    *pcVar11 = '\\';\n    if ((use_escapes == 0) || (6 < uVar5 - 7)) {\n      pcVar8 = pcVar11 + 3;\n      pcVar11[1] = 'C';\n      pcVar11[2] = '-';\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      pcVar12 = pcVar11 + 4;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      cVar9 = (char)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }\n      goto LAB_000d24cb;\n    }\n    seq = (char *)((byte *)seq + 1);\n    *pcVar8 = '\\';\n    pcVar11 = pcVar12 + 1;\n    *pcVar12 = 'e';\n    uVar10 = (uint)(byte)*seq;\n  } while (*seq != 0);" do (compound_statement "{\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      pcVar8 = pcVar11 + 1;\n      *pcVar11 = '\\';\n      cVar9 = 'e';\n      pcVar12 = pcVar11 + 2;\nLAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);\n      *pcVar8 = cVar9;\n      uVar10 = (uint)(byte)*seq;\n      pcVar11 = pcVar12;\n      if (*seq == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }\n      pcVar8 = pcVar11 + 3;\n      pcVar11[2] = '-';\n      pcVar12 = pcVar11 + 4;\n      pcVar11[0] = '\\';\n      pcVar11[1] = 'C';\n      cVar9 = '?';\n      goto LAB_000d24cb;\n    }\n    *pcVar11 = '\\';\n    if ((use_escapes == 0) || (6 < uVar5 - 7)) {\n      pcVar8 = pcVar11 + 3;\n      pcVar11[1] = 'C';\n      pcVar11[2] = '-';\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      pcVar12 = pcVar11 + 4;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      cVar9 = (char)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }\n      goto LAB_000d24cb;\n    }\n    seq = (char *)((byte *)seq + 1);\n    *pcVar8 = '\\';\n    pcVar11 = pcVar12 + 1;\n    *pcVar12 = 'e';\n    uVar10 = (uint)(byte)*seq;\n  }" { (while_statement "while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      pcVar8 = pcVar11 + 1;\n      *pcVar11 = '\\';\n      cVar9 = 'e';\n      pcVar12 = pcVar11 + 2;\nLAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);\n      *pcVar8 = cVar9;\n      uVar10 = (uint)(byte)*seq;\n      pcVar11 = pcVar12;\n      if (*seq == 0) goto LAB_000d2518;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      pcVar8 = pcVar11 + 1;\n      *pcVar11 = '\\';\n      cVar9 = 'e';\n      pcVar12 = pcVar11 + 2;\nLAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);\n      *pcVar8 = cVar9;\n      uVar10 = (uint)(byte)*seq;\n      pcVar11 = pcVar12;\n      if (*seq == 0) goto LAB_000d2518;\n    }" { (expression_statement "local_24._0_1_ = (byte)uVar10;" (assignment_expression "local_24._0_1_ = (byte)uVar10" (field_expression "local_24._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" identifier = (cast_expression "(uint)(char)(byte)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (if_statement "if (uVar5 - 0x80 < 0x80) {\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }" if (parenthesized_expression "(uVar5 - 0x80 < 0x80)" ( (binary_expression "uVar5 - 0x80 < 0x80" (binary_expression "uVar5 - 0x80" identifier - number_literal) < number_literal) )) (compound_statement "{\n        pcVar11[2] = '-';\n        pcVar8 = pcVar11 + 3;\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        pcVar11[0] = '\\';\n        pcVar11[1] = 'M';\n        pcVar12 = pcVar11 + 4;\n        goto LAB_000d24b4;\n      }" { (expression_statement "pcVar11[2] = '-';" (assignment_expression "pcVar11[2] = '-'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar8 = pcVar11 + 3;" (assignment_expression "pcVar8 = pcVar11 + 3" identifier = (binary_expression "pcVar11 + 3" identifier + number_literal)) ;) (expression_statement "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;" (assignment_expression "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f" identifier = (binary_expression "(int)(char)(byte)local_24 & 0xffffff7f" (cast_expression "(int)(char)(byte)local_24" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier))) & number_literal)) ;) (expression_statement "pcVar11[0] = '\\';" (assignment_expression "pcVar11[0] = '\\'" (subscript_expression "pcVar11[0]" identifier [ number_literal ]) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "pcVar11[1] = 'M';" (assignment_expression "pcVar11[1] = 'M'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) = (char_literal "'M'" ' character ')) ;) (expression_statement "pcVar12 = pcVar11 + 4;" (assignment_expression "pcVar12 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;) (goto_statement "goto LAB_000d24b4;" goto statement_identifier ;) })) (if_statement "if (uVar5 != 0x1b) break;" if (parenthesized_expression "(uVar5 != 0x1b)" ( (binary_expression "uVar5 != 0x1b" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar8 = pcVar11 + 1;" (assignment_expression "pcVar8 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar11 = '\\';" (assignment_expression "*pcVar11 = '\\'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "cVar9 = 'e';" (assignment_expression "cVar9 = 'e'" identifier = (char_literal "'e'" ' character ')) ;) (expression_statement "pcVar12 = pcVar11 + 2;" (assignment_expression "pcVar12 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_000d24cb:\n      seq = (char *)((byte *)seq + 1);" statement_identifier : (expression_statement "seq = (char *)((byte *)seq + 1);" (assignment_expression "seq = (char *)((byte *)seq + 1)" identifier = (cast_expression "(char *)((byte *)seq + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)seq + 1)" ( (binary_expression "(byte *)seq + 1" (cast_expression "(byte *)seq" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;)) (expression_statement "*pcVar8 = cVar9;" (assignment_expression "*pcVar8 = cVar9" (pointer_expression "*pcVar8" * identifier) = identifier) ;) (expression_statement "uVar10 = (uint)(byte)*seq;" (assignment_expression "uVar10 = (uint)(byte)*seq" identifier = (binary_expression "(uint)(byte)*seq" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "pcVar11 = pcVar12;" (assignment_expression "pcVar11 = pcVar12" identifier = identifier) ;) (if_statement "if (*seq == 0) goto LAB_000d2518;" if (parenthesized_expression "(*seq == 0)" ( (binary_expression "*seq == 0" (pointer_expression "*seq" * identifier) == number_literal) )) (goto_statement "goto LAB_000d2518;" goto statement_identifier ;)) })) (if_statement "if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }\n      pcVar8 = pcVar11 + 3;\n      pcVar11[2] = '-';\n      pcVar12 = pcVar11 + 4;\n      pcVar11[0] = '\\';\n      pcVar11[1] = 'C';\n      cVar9 = '?';\n      goto LAB_000d24cb;\n    }" if (parenthesized_expression "(0x1f < (byte)local_24)" ( (binary_expression "0x1f < (byte)local_24" number_literal < (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)) )) (compound_statement "{\n      if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }\n      pcVar8 = pcVar11 + 3;\n      pcVar11[2] = '-';\n      pcVar12 = pcVar11 + 4;\n      pcVar11[0] = '\\';\n      pcVar11[1] = 'C';\n      cVar9 = '?';\n      goto LAB_000d24cb;\n    }" { (if_statement "if (uVar5 != 0x7f) {\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }" if (parenthesized_expression "(uVar5 != 0x7f)" ( (binary_expression "uVar5 != 0x7f" identifier != number_literal) )) (compound_statement "{\n        pcVar12 = pcVar11 + 1;\n        pcVar8 = pcVar11;\n        goto LAB_000d24bb;\n      }" { (expression_statement "pcVar12 = pcVar11 + 1;" (assignment_expression "pcVar12 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = pcVar11;" (assignment_expression "pcVar8 = pcVar11" identifier = identifier) ;) (goto_statement "goto LAB_000d24bb;" goto statement_identifier ;) })) (expression_statement "pcVar8 = pcVar11 + 3;" (assignment_expression "pcVar8 = pcVar11 + 3" identifier = (binary_expression "pcVar11 + 3" identifier + number_literal)) ;) (expression_statement "pcVar11[2] = '-';" (assignment_expression "pcVar11[2] = '-'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar12 = pcVar11 + 4;" (assignment_expression "pcVar12 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;) (expression_statement "pcVar11[0] = '\\';" (assignment_expression "pcVar11[0] = '\\'" (subscript_expression "pcVar11[0]" identifier [ number_literal ]) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "pcVar11[1] = 'C';" (assignment_expression "pcVar11[1] = 'C'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) = (char_literal "'C'" ' character ')) ;) (expression_statement "cVar9 = '?';" (assignment_expression "cVar9 = '?'" identifier = (char_literal "'?'" ' character ')) ;) (goto_statement "goto LAB_000d24cb;" goto statement_identifier ;) })) (expression_statement "*pcVar11 = '\\';" (assignment_expression "*pcVar11 = '\\'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\\'" ' escape_sequence ')) ;) (if_statement "if ((use_escapes == 0) || (6 < uVar5 - 7)) {\n      pcVar8 = pcVar11 + 3;\n      pcVar11[1] = 'C';\n      pcVar11[2] = '-';\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      pcVar12 = pcVar11 + 4;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }" if (parenthesized_expression "((use_escapes == 0) || (6 < uVar5 - 7))" ( (binary_expression "(use_escapes == 0) || (6 < uVar5 - 7)" (parenthesized_expression "(use_escapes == 0)" ( (binary_expression "use_escapes == 0" identifier == number_literal) )) || (parenthesized_expression "(6 < uVar5 - 7)" ( (binary_expression "6 < uVar5 - 7" number_literal < (binary_expression "uVar5 - 7" identifier - number_literal)) ))) )) (compound_statement "{\n      pcVar8 = pcVar11 + 3;\n      pcVar11[1] = 'C';\n      pcVar11[2] = '-';\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      pcVar12 = pcVar11 + 4;\n      uVar5 = (*pp_Var7)[local_24];\n    }" { (expression_statement "pcVar8 = pcVar11 + 3;" (assignment_expression "pcVar8 = pcVar11 + 3" identifier = (binary_expression "pcVar11 + 3" identifier + number_literal)) ;) (expression_statement "pcVar11[1] = 'C';" (assignment_expression "pcVar11[1] = 'C'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) = (char_literal "'C'" ' character ')) ;) (expression_statement "pcVar11[2] = '-';" (assignment_expression "pcVar11[2] = '-'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) = (char_literal "'-'" ' character ')) ;) (expression_statement "local_24._0_1_ = (byte)local_24 | 0x40;" (assignment_expression "local_24._0_1_ = (byte)local_24 | 0x40" (field_expression "local_24._0_1_" identifier . field_identifier) = (binary_expression "(byte)local_24 | 0x40" (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal)) ;) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = *ppuVar6;" (assignment_expression "puVar2 = *ppuVar6" identifier = (pointer_expression "*ppuVar6" * identifier)) ;) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" identifier = (cast_expression "(uint)(char)(byte)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (expression_statement "uVar1 = puVar2[uVar5];" (assignment_expression "uVar1 = puVar2[uVar5]" identifier = (subscript_expression "puVar2[uVar5]" identifier [ identifier ])) ;) (if_statement "if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" if (parenthesized_expression "((uVar1 & 0x200) == 0)" ( (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }" { (expression_statement "local_24 = uVar5;" (assignment_expression "local_24 = uVar5" identifier = identifier) ;) (if_statement "if ((uVar1 & 0x100) == 0) {\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" if (parenthesized_expression "((uVar1 & 0x100) == 0)" ( (binary_expression "(uVar1 & 0x100) == 0" (parenthesized_expression "(uVar1 & 0x100)" ( (binary_expression "uVar1 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar12 = pcVar11 + 4;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" { (expression_statement "pcVar12 = pcVar11 + 4;" (assignment_expression "pcVar12 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" identifier = identifier) ;) (goto_statement "goto LAB_000d24bb;" goto statement_identifier ;) })) }) (else_clause "else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" else (compound_statement "{\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" { (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_24 = (*pp_Var7)[uVar5];" (assignment_expression "local_24 = (*pp_Var7)[uVar5]" identifier = (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) (if_statement "if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" if (parenthesized_expression "(((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           )" ( (binary_expression "((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" (parenthesized_expression "((local_24 & 0xffffff00) != 0)" ( (binary_expression "(local_24 & 0xffffff00) != 0" (parenthesized_expression "(local_24 & 0xffffff00)" ( (binary_expression "local_24 & 0xffffff00" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" ( (binary_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0" (parenthesized_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1)" ( (binary_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1" (pointer_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1)" * (cast_expression "(byte *)((int)puVar2 + local_24 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + local_24 * 2 + 1)" ( (binary_expression "(int)puVar2 + local_24 * 2 + 1" (binary_expression "(int)puVar2 + local_24 * 2" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "local_24 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pcVar12 = pcVar11 + 4;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" { (expression_statement "pcVar12 = pcVar11 + 4;" (assignment_expression "pcVar12 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;) (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (*pp_Var7)[uVar5];" (assignment_expression "uVar5 = (*pp_Var7)[uVar5]" identifier = (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) (goto_statement "goto LAB_000d24b4;" goto statement_identifier ;) })) }))) (expression_statement "pp_Var7 = __ctype_tolower_loc();" (assignment_expression "pp_Var7 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar12 = pcVar11 + 4;" (assignment_expression "pcVar12 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;) (expression_statement "uVar5 = (*pp_Var7)[local_24];" (assignment_expression "uVar5 = (*pp_Var7)[local_24]" identifier = (subscript_expression "(*pp_Var7)[local_24]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) }) (else_clause "else {\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }" else (compound_statement "{\n      pcVar8 = pcVar11 + 1;\n      uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);\n      pcVar12 = pcVar11 + 2;\n    }" { (expression_statement "pcVar8 = pcVar11 + 1;" (assignment_expression "pcVar8 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4);" (assignment_expression "uVar5 = *(uint *)(CSWTCH_758 + (uVar5 - 7) * 4)" identifier = (pointer_expression "*(uint *)(CSWTCH_758 + (uVar5 - 7) * 4)" * (cast_expression "(uint *)(CSWTCH_758 + (uVar5 - 7) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CSWTCH_758 + (uVar5 - 7) * 4)" ( (binary_expression "CSWTCH_758 + (uVar5 - 7) * 4" identifier + (binary_expression "(uVar5 - 7) * 4" (parenthesized_expression "(uVar5 - 7)" ( (binary_expression "uVar5 - 7" identifier - number_literal) )) * number_literal)) ))))) ;) (expression_statement "pcVar12 = pcVar11 + 2;" (assignment_expression "pcVar12 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) }))) (labeled_statement "LAB_000d24b4:\n    uVar10 = uVar5;" statement_identifier : (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" identifier = identifier) ;)) (if_statement "if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      cVar9 = (char)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }\n      goto LAB_000d24cb;\n    }" if (parenthesized_expression "(uVar5 != 0x1b)" ( (binary_expression "uVar5 != 0x1b" identifier != number_literal) )) (compound_statement "{\nLAB_000d24bb:\n      cVar9 = (char)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }\n      goto LAB_000d24cb;\n    }" { (labeled_statement "LAB_000d24bb:\n      cVar9 = (char)uVar10;" statement_identifier : (expression_statement "cVar9 = (char)uVar10;" (assignment_expression "cVar9 = (char)uVar10" identifier = (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (if_statement "if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }" if (parenthesized_expression "((uVar5 == 0x5c) || (uVar5 == 0x22))" ( (binary_expression "(uVar5 == 0x5c) || (uVar5 == 0x22)" (parenthesized_expression "(uVar5 == 0x5c)" ( (binary_expression "uVar5 == 0x5c" identifier == number_literal) )) || (parenthesized_expression "(uVar5 == 0x22)" ( (binary_expression "uVar5 == 0x22" identifier == number_literal) ))) )) (compound_statement "{\n        *pcVar8 = '\\';\n        pcVar8 = pcVar12;\n        pcVar12 = pcVar12 + 1;\n      }" { (expression_statement "*pcVar8 = '\\';" (assignment_expression "*pcVar8 = '\\'" (pointer_expression "*pcVar8" * identifier) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "pcVar8 = pcVar12;" (assignment_expression "pcVar8 = pcVar12" identifier = identifier) ;) (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_000d24cb;" goto statement_identifier ;) })) (expression_statement "seq = (char *)((byte *)seq + 1);" (assignment_expression "seq = (char *)((byte *)seq + 1)" identifier = (cast_expression "(char *)((byte *)seq + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)seq + 1)" ( (binary_expression "(byte *)seq + 1" (cast_expression "(byte *)seq" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "*pcVar8 = '\\';" (assignment_expression "*pcVar8 = '\\'" (pointer_expression "*pcVar8" * identifier) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "pcVar11 = pcVar12 + 1;" (assignment_expression "pcVar11 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar12 = 'e';" (assignment_expression "*pcVar12 = 'e'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'e'" ' character ')) ;) (expression_statement "uVar10 = (uint)(byte)*seq;" (assignment_expression "uVar10 = (uint)(byte)*seq" identifier = (binary_expression "(uint)(byte)*seq" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "(*seq != 0)" ( (binary_expression "*seq != 0" (pointer_expression "*seq" * identifier) != number_literal) )) ;) (labeled_statement "LAB_000d2518:\n  *pcVar11 = '\0';" statement_identifier : (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (return_statement "return pcVar4;" return identifier ;) })))
(translation_unit "undefined2 * _rl_untranslate_macro_value(byte *param_1,int param_2)\n\n{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}\n\n" (function_definition "undefined2 * _rl_untranslate_macro_value(byte *param_1,int param_2)\n\n{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}" type_identifier (pointer_declarator "* _rl_untranslate_macro_value(byte *param_1,int param_2)" * (function_declarator "_rl_untranslate_macro_value(byte *param_1,int param_2)" identifier (parameter_list "(byte *param_1,int param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "ushort *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined2 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "__int32_t **pp_Var7;" type_identifier (pointer_declarator "**pp_Var7" * (pointer_declarator "*pp_Var7" * identifier)) ;) (declaration "undefined2 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined2 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined2 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "sVar3 = strlen((char *)param_1);" (assignment_expression "sVar3 = strlen((char *)param_1)" identifier = (call_expression "strlen((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);" (assignment_expression "puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1)" identifier = (cast_expression "(undefined2 *)xmalloc(sVar3 * 7 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3 * 7 + 1)" identifier (argument_list "(sVar3 * 7 + 1)" ( (binary_expression "sVar3 * 7 + 1" (binary_expression "sVar3 * 7" identifier * number_literal) + number_literal) ))))) ;) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar12 = puVar4;" (assignment_expression "puVar12 = puVar4" identifier = identifier) ;) (if_statement "if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }" { (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" * (cast_expression "(undefined1 *)puVar4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return puVar4;" return identifier ;) })) (do_statement "do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);" do (compound_statement "{\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  }" { (while_statement "while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }" { (expression_statement "local_24._0_1_ = (byte)uVar10;" (assignment_expression "local_24._0_1_ = (byte)uVar10" (field_expression "local_24._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" identifier = (cast_expression "(uint)(char)(byte)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (if_statement "if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }" if (parenthesized_expression "(uVar5 - 0x80 < 0x80)" ( (binary_expression "uVar5 - 0x80 < 0x80" (binary_expression "uVar5 - 0x80" identifier - number_literal) < number_literal) )) (compound_statement "{\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }" { (expression_statement "*(undefined1 *)(puVar12 + 1) = 0x2d;" (assignment_expression "*(undefined1 *)(puVar12 + 1) = 0x2d" (pointer_expression "*(undefined1 *)(puVar12 + 1)" * (cast_expression "(undefined1 *)(puVar12 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 1)" ( (binary_expression "puVar12 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 3)" ( (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;" (assignment_expression "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f" identifier = (binary_expression "(int)(char)(byte)local_24 & 0xffffff7f" (cast_expression "(int)(char)(byte)local_24" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier))) & number_literal)) ;) (expression_statement "*puVar12 = 0x4d5c;" (assignment_expression "*puVar12 = 0x4d5c" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_000d24b4;" goto statement_identifier ;) })) (if_statement "if (uVar5 != 0x1b) break;" if (parenthesized_expression "(uVar5 != 0x1b)" ( (binary_expression "uVar5 != 0x1b" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)puVar12 = 0x5c;" (assignment_expression "*(undefined1 *)puVar12 = 0x5c" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar9 = 0x65;" (assignment_expression "uVar9 = 0x65" identifier = number_literal) ;) (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_000d24cb:\n      param_1 = param_1 + 1;" statement_identifier : (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) (expression_statement "*(undefined1 *)puVar8 = uVar9;" (assignment_expression "*(undefined1 *)puVar8 = uVar9" (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" identifier = identifier) ;) (if_statement "if (*param_1 == 0) goto LAB_000d2518;" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (goto_statement "goto LAB_000d2518;" goto statement_identifier ;)) })) (if_statement "if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }" if (parenthesized_expression "(0x1f < (byte)local_24)" ( (binary_expression "0x1f < (byte)local_24" number_literal < (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)) )) (compound_statement "{\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }" { (if_statement "if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }" if (parenthesized_expression "(uVar5 != 0x7f)" ( (binary_expression "uVar5 != 0x7f" identifier != number_literal) )) (compound_statement "{\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }" { (expression_statement "puVar11 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar11 = (undefined2 *)((int)puVar12 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar8 = puVar12;" (assignment_expression "puVar8 = puVar12" identifier = identifier) ;) (goto_statement "goto LAB_000d24bb;" goto statement_identifier ;) })) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 3)" ( (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(puVar12 + 1) = 0x2d;" (assignment_expression "*(undefined1 *)(puVar12 + 1) = 0x2d" (pointer_expression "*(undefined1 *)(puVar12 + 1)" * (cast_expression "(undefined1 *)(puVar12 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 1)" ( (binary_expression "puVar12 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "*puVar12 = 0x435c;" (assignment_expression "*puVar12 = 0x435c" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_000d24cb;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)puVar12 = 0x5c;" (assignment_expression "*(undefined1 *)puVar12 = 0x5c" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" if (parenthesized_expression "((param_2 == 0) || (6 < uVar5 - 7))" ( (binary_expression "(param_2 == 0) || (6 < uVar5 - 7)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(6 < uVar5 - 7)" ( (binary_expression "6 < uVar5 - 7" number_literal < (binary_expression "uVar5 - 7" identifier - number_literal)) ))) )) (compound_statement "{\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }" { (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 3)" ( (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined2 *)((int)puVar12 + 1) = 0x2d43;" (assignment_expression "*(undefined2 *)((int)puVar12 + 1) = 0x2d43" (pointer_expression "*(undefined2 *)((int)puVar12 + 1)" * (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_24._0_1_ = (byte)local_24 | 0x40;" (assignment_expression "local_24._0_1_ = (byte)local_24 | 0x40" (field_expression "local_24._0_1_" identifier . field_identifier) = (binary_expression "(byte)local_24 | 0x40" (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal)) ;) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = *ppuVar6;" (assignment_expression "puVar2 = *ppuVar6" identifier = (pointer_expression "*ppuVar6" * identifier)) ;) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" identifier = (cast_expression "(uint)(char)(byte)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)(byte)local_24" ( (type_descriptor "char" primitive_type) ) (cast_expression "(byte)local_24" ( (type_descriptor "byte" type_identifier) ) identifier)))) ;) (expression_statement "uVar1 = puVar2[uVar5];" (assignment_expression "uVar1 = puVar2[uVar5]" identifier = (subscript_expression "puVar2[uVar5]" identifier [ identifier ])) ;) (if_statement "if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" if (parenthesized_expression "((uVar1 & 0x200) == 0)" ( (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }" { (expression_statement "local_24 = uVar5;" (assignment_expression "local_24 = uVar5" identifier = identifier) ;) (if_statement "if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" if (parenthesized_expression "((uVar1 & 0x100) == 0)" ( (binary_expression "(uVar1 & 0x100) == 0" (parenthesized_expression "(uVar1 & 0x100)" ( (binary_expression "uVar1 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" { (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" identifier = identifier) ;) (goto_statement "goto LAB_000d24bb;" goto statement_identifier ;) })) }) (else_clause "else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" else (compound_statement "{\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" { (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_24 = (*pp_Var7)[uVar5];" (assignment_expression "local_24 = (*pp_Var7)[uVar5]" identifier = (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) (if_statement "if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" if (parenthesized_expression "(((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           )" ( (binary_expression "((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" (parenthesized_expression "((local_24 & 0xffffff00) != 0)" ( (binary_expression "(local_24 & 0xffffff00) != 0" (parenthesized_expression "(local_24 & 0xffffff00)" ( (binary_expression "local_24 & 0xffffff00" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" ( (binary_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0" (parenthesized_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1)" ( (binary_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1" (pointer_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1)" * (cast_expression "(byte *)((int)puVar2 + local_24 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + local_24 * 2 + 1)" ( (binary_expression "(int)puVar2 + local_24 * 2 + 1" (binary_expression "(int)puVar2 + local_24 * 2" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "local_24 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" { (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (*pp_Var7)[uVar5];" (assignment_expression "uVar5 = (*pp_Var7)[uVar5]" identifier = (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) (goto_statement "goto LAB_000d24b4;" goto statement_identifier ;) })) }))) (expression_statement "pp_Var7 = __ctype_tolower_loc();" (assignment_expression "pp_Var7 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "uVar5 = (*pp_Var7)[local_24];" (assignment_expression "uVar5 = (*pp_Var7)[local_24]" identifier = (subscript_expression "(*pp_Var7)[local_24]" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) [ identifier ])) ;) }) (else_clause "else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" else (compound_statement "{\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" { (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar12 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 1)" ( (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);" (assignment_expression "uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" * (cast_expression "(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00106464 + (uVar5 - 7) * 4)" ( (binary_expression "&DAT_00106464 + (uVar5 - 7) * 4" (pointer_expression "&DAT_00106464" & identifier) + (binary_expression "(uVar5 - 7) * 4" (parenthesized_expression "(uVar5 - 7)" ( (binary_expression "uVar5 - 7" identifier - number_literal) )) * number_literal)) ))))) ;) (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }))) (labeled_statement "LAB_000d24b4:\n    uVar10 = uVar5;" statement_identifier : (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" identifier = identifier) ;)) (if_statement "if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }" if (parenthesized_expression "(uVar5 != 0x1b)" ( (binary_expression "uVar5 != 0x1b" identifier != number_literal) )) (compound_statement "{\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }" { (labeled_statement "LAB_000d24bb:\n      uVar9 = (undefined1)uVar10;" statement_identifier : (expression_statement "uVar9 = (undefined1)uVar10;" (assignment_expression "uVar9 = (undefined1)uVar10" identifier = (cast_expression "(undefined1)uVar10" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (if_statement "if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }" if (parenthesized_expression "((uVar5 == 0x5c) || (uVar5 == 0x22))" ( (binary_expression "(uVar5 == 0x5c) || (uVar5 == 0x22)" (parenthesized_expression "(uVar5 == 0x5c)" ( (binary_expression "uVar5 == 0x5c" identifier == number_literal) )) || (parenthesized_expression "(uVar5 == 0x22)" ( (binary_expression "uVar5 == 0x22" identifier == number_literal) ))) )) (compound_statement "{\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }" { (expression_statement "*(undefined1 *)puVar8 = 0x5c;" (assignment_expression "*(undefined1 *)puVar8 = 0x5c" (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar8 = puVar11;" (assignment_expression "puVar8 = puVar11" identifier = identifier) ;) (expression_statement "puVar11 = (undefined2 *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (undefined2 *)((int)puVar11 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar11 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (goto_statement "goto LAB_000d24cb;" goto statement_identifier ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar8 = 0x5c;" (assignment_expression "*(undefined1 *)puVar8 = 0x5c" (pointer_expression "*(undefined1 *)puVar8" * (cast_expression "(undefined1 *)puVar8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar12 = (undefined2 *)((int)puVar11 + 1);" (assignment_expression "puVar12 = (undefined2 *)((int)puVar11 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar11 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)puVar11 = 0x65;" (assignment_expression "*(undefined1 *)puVar11 = 0x65" (pointer_expression "*(undefined1 *)puVar11" * (cast_expression "(undefined1 *)puVar11" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) ;) (labeled_statement "LAB_000d2518:\n  *(undefined1 *)puVar12 = 0;" statement_identifier : (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;)) (return_statement "return puVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT * LIT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (return_statement return IDENT ;) })) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ])) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined2 * _rl_untranslate_macro_value(byte *param_1,int param_2)\n\n{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}" (type_identifier "undefined2") (pointer_declarator "* _rl_untranslate_macro_value(byte *param_1,int param_2)" (* "*") (function_declarator "_rl_untranslate_macro_value(byte *param_1,int param_2)" (identifier "_rl_untranslate_macro_value") (parameter_list "(byte *param_1,int param_2)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")")))) (compound_statement "{\n  ushort uVar1;\n  ushort *puVar2;\n  size_t sVar3;\n  undefined2 *puVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  __int32_t **pp_Var7;\n  undefined2 *puVar8;\n  undefined1 uVar9;\n  uint uVar10;\n  undefined2 *puVar11;\n  undefined2 *puVar12;\n  uint local_24;\n  \n  sVar3 = strlen((char *)param_1);\n  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);\n  uVar10 = (uint)*param_1;\n  puVar12 = puVar4;\n  if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }\n  do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);\nLAB_000d2518:\n  *(undefined1 *)puVar12 = 0;\n  return puVar4;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "ushort *puVar2;" (type_identifier "ushort") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined2 *puVar4;" (type_identifier "undefined2") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "ushort **ppuVar6;" (type_identifier "ushort") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (declaration "__int32_t **pp_Var7;" (type_identifier "__int32_t") (pointer_declarator "**pp_Var7" (* "*") (pointer_declarator "*pp_Var7" (* "*") (identifier "pp_Var7"))) (; ";")) (declaration "undefined2 *puVar8;" (type_identifier "undefined2") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined1 uVar9;" (type_identifier "undefined1") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined2 *puVar11;" (type_identifier "undefined2") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined2 *puVar12;" (type_identifier "undefined2") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (expression_statement "sVar3 = strlen((char *)param_1);" (assignment_expression "sVar3 = strlen((char *)param_1)" (identifier "sVar3") (= "=") (call_expression "strlen((char *)param_1)" (identifier "strlen") (argument_list "((char *)param_1)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);" (assignment_expression "puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1)" (identifier "puVar4") (= "=") (cast_expression "(undefined2 *)xmalloc(sVar3 * 7 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar3 * 7 + 1)" (identifier "xmalloc") (argument_list "(sVar3 * 7 + 1)" (( "(") (binary_expression "sVar3 * 7 + 1" (binary_expression "sVar3 * 7" (identifier "sVar3") (* "*") (number_literal "7")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" (identifier "uVar10") (= "=") (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar12 = puVar4;" (assignment_expression "puVar12 = puVar4" (identifier "puVar12") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (*param_1 == 0) {\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined1 *)puVar4 = 0;\n    return puVar4;\n  }" ({ "{") (expression_statement "*(undefined1 *)puVar4 = 0;" (assignment_expression "*(undefined1 *)puVar4 = 0" (pointer_expression "*(undefined1 *)puVar4" (* "*") (cast_expression "(undefined1 *)puVar4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (number_literal "0")) (; ";")) (return_statement "return puVar4;" (return "return") (identifier "puVar4") (; ";")) (} "}"))) (do_statement "do {\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  } while (*param_1 != 0);" (do "do") (compound_statement "{\n    while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }\n    if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }\n    *(undefined1 *)puVar12 = 0x5c;\n    if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }\nLAB_000d24b4:\n    uVar10 = uVar5;\n    if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }\n    param_1 = param_1 + 1;\n    *(undefined1 *)puVar8 = 0x5c;\n    puVar12 = (undefined2 *)((int)puVar11 + 1);\n    *(undefined1 *)puVar11 = 0x65;\n    uVar10 = (uint)*param_1;\n  }" ({ "{") (while_statement "while( true ) {\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      local_24._0_1_ = (byte)uVar10;\n      uVar5 = (uint)(char)(byte)local_24;\n      if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }\n      if (uVar5 != 0x1b) break;\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      *(undefined1 *)puVar12 = 0x5c;\n      uVar9 = 0x65;\n      puVar11 = puVar12 + 1;\nLAB_000d24cb:\n      param_1 = param_1 + 1;\n      *(undefined1 *)puVar8 = uVar9;\n      uVar10 = (uint)*param_1;\n      puVar12 = puVar11;\n      if (*param_1 == 0) goto LAB_000d2518;\n    }" ({ "{") (expression_statement "local_24._0_1_ = (byte)uVar10;" (assignment_expression "local_24._0_1_ = (byte)uVar10" (field_expression "local_24._0_1_" (identifier "local_24") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" (identifier "uVar5") (= "=") (cast_expression "(uint)(char)(byte)local_24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)(byte)local_24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(byte)local_24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_24"))))) (; ";")) (if_statement "if (uVar5 - 0x80 < 0x80) {\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }" (if "if") (parenthesized_expression "(uVar5 - 0x80 < 0x80)" (( "(") (binary_expression "uVar5 - 0x80 < 0x80" (binary_expression "uVar5 - 0x80" (identifier "uVar5") (- "-") (number_literal "0x80")) (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n        *(undefined1 *)(puVar12 + 1) = 0x2d;\n        puVar8 = (undefined2 *)((int)puVar12 + 3);\n        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;\n        *puVar12 = 0x4d5c;\n        puVar11 = puVar12 + 2;\n        goto LAB_000d24b4;\n      }" ({ "{") (expression_statement "*(undefined1 *)(puVar12 + 1) = 0x2d;" (assignment_expression "*(undefined1 *)(puVar12 + 1) = 0x2d" (pointer_expression "*(undefined1 *)(puVar12 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 1)" (( "(") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0x2d")) (; ";")) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" (identifier "puVar8") (= "=") (cast_expression "(undefined2 *)((int)puVar12 + 3)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 3)" (( "(") (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;" (assignment_expression "uVar5 = (int)(char)(byte)local_24 & 0xffffff7f" (identifier "uVar5") (= "=") (binary_expression "(int)(char)(byte)local_24 & 0xffffff7f" (cast_expression "(int)(char)(byte)local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)(byte)local_24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(byte)local_24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_24")))) (& "&") (number_literal "0xffffff7f"))) (; ";")) (expression_statement "*puVar12 = 0x4d5c;" (assignment_expression "*puVar12 = 0x4d5c" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0x4d5c")) (; ";")) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_000d24b4;" (goto "goto") (statement_identifier "LAB_000d24b4") (; ";")) (} "}"))) (if_statement "if (uVar5 != 0x1b) break;" (if "if") (parenthesized_expression "(uVar5 != 0x1b)" (( "(") (binary_expression "uVar5 != 0x1b" (identifier "uVar5") (!= "!=") (number_literal "0x1b")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 1)" (identifier "puVar8") (= "=") (cast_expression "(undefined2 *)((int)puVar12 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 1)" (( "(") (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)puVar12 = 0x5c;" (assignment_expression "*(undefined1 *)puVar12 = 0x5c" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "uVar9 = 0x65;" (assignment_expression "uVar9 = 0x65" (identifier "uVar9") (= "=") (number_literal "0x65")) (; ";")) (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_000d24cb:\n      param_1 = param_1 + 1;" (statement_identifier "LAB_000d24cb") (: ":") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*(undefined1 *)puVar8 = uVar9;" (assignment_expression "*(undefined1 *)puVar8 = uVar9" (pointer_expression "*(undefined1 *)puVar8" (* "*") (cast_expression "(undefined1 *)puVar8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" (identifier "uVar10") (= "=") (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar12 = puVar11;" (assignment_expression "puVar12 = puVar11" (identifier "puVar12") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (*param_1 == 0) goto LAB_000d2518;" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d2518;" (goto "goto") (statement_identifier "LAB_000d2518") (; ";"))) (} "}"))) (if_statement "if (0x1f < (byte)local_24) {\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }" (if "if") (parenthesized_expression "(0x1f < (byte)local_24)" (( "(") (binary_expression "0x1f < (byte)local_24" (number_literal "0x1f") (< "<") (cast_expression "(byte)local_24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_24"))) () ")")) (compound_statement "{\n      if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined1 *)(puVar12 + 1) = 0x2d;\n      puVar11 = puVar12 + 2;\n      *puVar12 = 0x435c;\n      uVar9 = 0x3f;\n      goto LAB_000d24cb;\n    }" ({ "{") (if_statement "if (uVar5 != 0x7f) {\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }" (if "if") (parenthesized_expression "(uVar5 != 0x7f)" (( "(") (binary_expression "uVar5 != 0x7f" (identifier "uVar5") (!= "!=") (number_literal "0x7f")) () ")")) (compound_statement "{\n        puVar11 = (undefined2 *)((int)puVar12 + 1);\n        puVar8 = puVar12;\n        goto LAB_000d24bb;\n      }" ({ "{") (expression_statement "puVar11 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar11 = (undefined2 *)((int)puVar12 + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined2 *)((int)puVar12 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 1)" (( "(") (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar8 = puVar12;" (assignment_expression "puVar8 = puVar12" (identifier "puVar8") (= "=") (identifier "puVar12")) (; ";")) (goto_statement "goto LAB_000d24bb;" (goto "goto") (statement_identifier "LAB_000d24bb") (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" (identifier "puVar8") (= "=") (cast_expression "(undefined2 *)((int)puVar12 + 3)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 3)" (( "(") (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(puVar12 + 1) = 0x2d;" (assignment_expression "*(undefined1 *)(puVar12 + 1) = 0x2d" (pointer_expression "*(undefined1 *)(puVar12 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 1)" (( "(") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0x2d")) (; ";")) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*puVar12 = 0x435c;" (assignment_expression "*puVar12 = 0x435c" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0x435c")) (; ";")) (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" (identifier "uVar9") (= "=") (number_literal "0x3f")) (; ";")) (goto_statement "goto LAB_000d24cb;" (goto "goto") (statement_identifier "LAB_000d24cb") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)puVar12 = 0x5c;" (assignment_expression "*(undefined1 *)puVar12 = 0x5c" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0x5c")) (; ";")) (if_statement "if ((param_2 == 0) || (6 < uVar5 - 7)) {\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }\n    else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" (if "if") (parenthesized_expression "((param_2 == 0) || (6 < uVar5 - 7))" (( "(") (binary_expression "(param_2 == 0) || (6 < uVar5 - 7)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(6 < uVar5 - 7)" (( "(") (binary_expression "6 < uVar5 - 7" (number_literal "6") (< "<") (binary_expression "uVar5 - 7" (identifier "uVar5") (- "-") (number_literal "7"))) () ")"))) () ")")) (compound_statement "{\n      puVar8 = (undefined2 *)((int)puVar12 + 3);\n      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;\n      local_24._0_1_ = (byte)local_24 | 0x40;\n      ppuVar6 = __ctype_b_loc();\n      puVar2 = *ppuVar6;\n      uVar5 = (uint)(char)(byte)local_24;\n      uVar1 = puVar2[uVar5];\n      if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }\n      pp_Var7 = __ctype_tolower_loc();\n      puVar11 = puVar12 + 2;\n      uVar5 = (*pp_Var7)[local_24];\n    }" ({ "{") (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 3);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 3)" (identifier "puVar8") (= "=") (cast_expression "(undefined2 *)((int)puVar12 + 3)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 3)" (( "(") (binary_expression "(int)puVar12 + 3" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*(undefined2 *)((int)puVar12 + 1) = 0x2d43;" (assignment_expression "*(undefined2 *)((int)puVar12 + 1) = 0x2d43" (pointer_expression "*(undefined2 *)((int)puVar12 + 1)" (* "*") (cast_expression "(undefined2 *)((int)puVar12 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 1)" (( "(") (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0x2d43")) (; ";")) (expression_statement "local_24._0_1_ = (byte)local_24 | 0x40;" (assignment_expression "local_24._0_1_ = (byte)local_24 | 0x40" (field_expression "local_24._0_1_" (identifier "local_24") (. ".") (field_identifier "_0_1_")) (= "=") (binary_expression "(byte)local_24 | 0x40" (cast_expression "(byte)local_24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_24")) (| "|") (number_literal "0x40"))) (; ";")) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" (identifier "ppuVar6") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar2 = *ppuVar6;" (assignment_expression "puVar2 = *ppuVar6" (identifier "puVar2") (= "=") (pointer_expression "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (expression_statement "uVar5 = (uint)(char)(byte)local_24;" (assignment_expression "uVar5 = (uint)(char)(byte)local_24" (identifier "uVar5") (= "=") (cast_expression "(uint)(char)(byte)local_24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)(byte)local_24" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(byte)local_24" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_24"))))) (; ";")) (expression_statement "uVar1 = puVar2[uVar5];" (assignment_expression "uVar1 = puVar2[uVar5]" (identifier "uVar1") (= "=") (subscript_expression "puVar2[uVar5]" (identifier "puVar2") ([ "[") (identifier "uVar5") (] "]"))) (; ";")) (if_statement "if ((uVar1 & 0x200) == 0) {\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }\n      else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" (if "if") (parenthesized_expression "((uVar1 & 0x200) == 0)" (( "(") (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" (( "(") (binary_expression "uVar1 & 0x200" (identifier "uVar1") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_24 = uVar5;\n        if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }\n      }" ({ "{") (expression_statement "local_24 = uVar5;" (assignment_expression "local_24 = uVar5" (identifier "local_24") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if ((uVar1 & 0x100) == 0) {\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" (if "if") (parenthesized_expression "((uVar1 & 0x100) == 0)" (( "(") (binary_expression "(uVar1 & 0x100) == 0" (parenthesized_expression "(uVar1 & 0x100)" (( "(") (binary_expression "uVar1 & 0x100" (identifier "uVar1") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar11 = puVar12 + 2;\n          uVar10 = uVar5;\n          goto LAB_000d24bb;\n        }" ({ "{") (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" (identifier "uVar10") (= "=") (identifier "uVar5")) (; ";")) (goto_statement "goto LAB_000d24bb;" (goto "goto") (statement_identifier "LAB_000d24bb") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" (else "else") (compound_statement "{\n        pp_Var7 = __ctype_toupper_loc();\n        local_24 = (*pp_Var7)[uVar5];\n        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }\n      }" ({ "{") (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" (identifier "pp_Var7") (= "=") (call_expression "__ctype_toupper_loc()" (identifier "__ctype_toupper_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_24 = (*pp_Var7)[uVar5];" (assignment_expression "local_24 = (*pp_Var7)[uVar5]" (identifier "local_24") (= "=") (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" (( "(") (pointer_expression "*pp_Var7" (* "*") (identifier "pp_Var7")) () ")")) ([ "[") (identifier "uVar5") (] "]"))) (; ";")) (if_statement "if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           ) {\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" (if "if") (parenthesized_expression "(((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)\n           )" (( "(") (binary_expression "((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" (parenthesized_expression "((local_24 & 0xffffff00) != 0)" (( "(") (binary_expression "(local_24 & 0xffffff00) != 0" (parenthesized_expression "(local_24 & 0xffffff00)" (( "(") (binary_expression "local_24 & 0xffffff00" (identifier "local_24") (& "&") (number_literal "0xffffff00")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)" (( "(") (binary_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0" (parenthesized_expression "(*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1)" (( "(") (binary_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1" (pointer_expression "*(byte *)((int)puVar2 + local_24 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)puVar2 + local_24 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + local_24 * 2 + 1)" (( "(") (binary_expression "(int)puVar2 + local_24 * 2 + 1" (binary_expression "(int)puVar2 + local_24 * 2" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (binary_expression "local_24 * 2" (identifier "local_24") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          puVar11 = puVar12 + 2;\n          pp_Var7 = __ctype_toupper_loc();\n          uVar5 = (*pp_Var7)[uVar5];\n          goto LAB_000d24b4;\n        }" ({ "{") (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pp_Var7 = __ctype_toupper_loc();" (assignment_expression "pp_Var7 = __ctype_toupper_loc()" (identifier "pp_Var7") (= "=") (call_expression "__ctype_toupper_loc()" (identifier "__ctype_toupper_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = (*pp_Var7)[uVar5];" (assignment_expression "uVar5 = (*pp_Var7)[uVar5]" (identifier "uVar5") (= "=") (subscript_expression "(*pp_Var7)[uVar5]" (parenthesized_expression "(*pp_Var7)" (( "(") (pointer_expression "*pp_Var7" (* "*") (identifier "pp_Var7")) () ")")) ([ "[") (identifier "uVar5") (] "]"))) (; ";")) (goto_statement "goto LAB_000d24b4;" (goto "goto") (statement_identifier "LAB_000d24b4") (; ";")) (} "}"))) (} "}")))) (expression_statement "pp_Var7 = __ctype_tolower_loc();" (assignment_expression "pp_Var7 = __ctype_tolower_loc()" (identifier "pp_Var7") (= "=") (call_expression "__ctype_tolower_loc()" (identifier "__ctype_tolower_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar11 = puVar12 + 2;" (assignment_expression "puVar11 = puVar12 + 2" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar5 = (*pp_Var7)[local_24];" (assignment_expression "uVar5 = (*pp_Var7)[local_24]" (identifier "uVar5") (= "=") (subscript_expression "(*pp_Var7)[local_24]" (parenthesized_expression "(*pp_Var7)" (( "(") (pointer_expression "*pp_Var7" (* "*") (identifier "pp_Var7")) () ")")) ([ "[") (identifier "local_24") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" (else "else") (compound_statement "{\n      puVar8 = (undefined2 *)((int)puVar12 + 1);\n      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);\n      puVar11 = puVar12 + 1;\n    }" ({ "{") (expression_statement "puVar8 = (undefined2 *)((int)puVar12 + 1);" (assignment_expression "puVar8 = (undefined2 *)((int)puVar12 + 1)" (identifier "puVar8") (= "=") (cast_expression "(undefined2 *)((int)puVar12 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 1)" (( "(") (binary_expression "(int)puVar12 + 1" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);" (assignment_expression "uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00106464 + (uVar5 - 7) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00106464 + (uVar5 - 7) * 4)" (( "(") (binary_expression "&DAT_00106464 + (uVar5 - 7) * 4" (pointer_expression "&DAT_00106464" (& "&") (identifier "DAT_00106464")) (+ "+") (binary_expression "(uVar5 - 7) * 4" (parenthesized_expression "(uVar5 - 7)" (( "(") (binary_expression "uVar5 - 7" (identifier "uVar5") (- "-") (number_literal "7")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "puVar11 = puVar12 + 1;" (assignment_expression "puVar11 = puVar12 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (labeled_statement "LAB_000d24b4:\n    uVar10 = uVar5;" (statement_identifier "LAB_000d24b4") (: ":") (expression_statement "uVar10 = uVar5;" (assignment_expression "uVar10 = uVar5" (identifier "uVar10") (= "=") (identifier "uVar5")) (; ";"))) (if_statement "if (uVar5 != 0x1b) {\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }" (if "if") (parenthesized_expression "(uVar5 != 0x1b)" (( "(") (binary_expression "uVar5 != 0x1b" (identifier "uVar5") (!= "!=") (number_literal "0x1b")) () ")")) (compound_statement "{\nLAB_000d24bb:\n      uVar9 = (undefined1)uVar10;\n      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }\n      goto LAB_000d24cb;\n    }" ({ "{") (labeled_statement "LAB_000d24bb:\n      uVar9 = (undefined1)uVar10;" (statement_identifier "LAB_000d24bb") (: ":") (expression_statement "uVar9 = (undefined1)uVar10;" (assignment_expression "uVar9 = (undefined1)uVar10" (identifier "uVar9") (= "=") (cast_expression "(undefined1)uVar10" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar10"))) (; ";"))) (if_statement "if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }" (if "if") (parenthesized_expression "((uVar5 == 0x5c) || (uVar5 == 0x22))" (( "(") (binary_expression "(uVar5 == 0x5c) || (uVar5 == 0x22)" (parenthesized_expression "(uVar5 == 0x5c)" (( "(") (binary_expression "uVar5 == 0x5c" (identifier "uVar5") (== "==") (number_literal "0x5c")) () ")")) (|| "||") (parenthesized_expression "(uVar5 == 0x22)" (( "(") (binary_expression "uVar5 == 0x22" (identifier "uVar5") (== "==") (number_literal "0x22")) () ")"))) () ")")) (compound_statement "{\n        *(undefined1 *)puVar8 = 0x5c;\n        puVar8 = puVar11;\n        puVar11 = (undefined2 *)((int)puVar11 + 1);\n      }" ({ "{") (expression_statement "*(undefined1 *)puVar8 = 0x5c;" (assignment_expression "*(undefined1 *)puVar8 = 0x5c" (pointer_expression "*(undefined1 *)puVar8" (* "*") (cast_expression "(undefined1 *)puVar8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "puVar8 = puVar11;" (assignment_expression "puVar8 = puVar11" (identifier "puVar8") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar11 = (undefined2 *)((int)puVar11 + 1);" (assignment_expression "puVar11 = (undefined2 *)((int)puVar11 + 1)" (identifier "puVar11") (= "=") (cast_expression "(undefined2 *)((int)puVar11 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 1)" (( "(") (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_000d24cb;" (goto "goto") (statement_identifier "LAB_000d24cb") (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)puVar8 = 0x5c;" (assignment_expression "*(undefined1 *)puVar8 = 0x5c" (pointer_expression "*(undefined1 *)puVar8" (* "*") (cast_expression "(undefined1 *)puVar8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "puVar12 = (undefined2 *)((int)puVar11 + 1);" (assignment_expression "puVar12 = (undefined2 *)((int)puVar11 + 1)" (identifier "puVar12") (= "=") (cast_expression "(undefined2 *)((int)puVar11 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 1)" (( "(") (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)puVar11 = 0x65;" (assignment_expression "*(undefined1 *)puVar11 = 0x65" (pointer_expression "*(undefined1 *)puVar11" (* "*") (cast_expression "(undefined1 *)puVar11" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (= "=") (number_literal "0x65")) (; ";")) (expression_statement "uVar10 = (uint)*param_1;" (assignment_expression "uVar10 = (uint)*param_1" (identifier "uVar10") (= "=") (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*param_1 != 0)" (( "(") (binary_expression "*param_1 != 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_000d2518:\n  *(undefined1 *)puVar12 = 0;" (statement_identifier "LAB_000d2518") (: ":") (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";"))) (return_statement "return puVar4;" (return "return") (identifier "puVar4") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

char * function_1(char *var_4,int var_7)

{
  type_1 var_9;
  type_1 *puVar2;
  size_t var_3;
  char *pcVar4;
  type_2 var_5;
  type_1 **ppuVar6;
  type_3 **pp_Var7;
  char *pcVar8;
  char cVar9;
  type_2 uVar10;
  char *var_6;
  char *var_14;
  type_2 var_11;
  
  var_3 = var_1(var_4);
  pcVar4 = (char *)var_2(var_3 * 7 + 1);
  uVar10 = (type_2)(type_4)*var_4;
  var_6 = pcVar4;
  if (*var_4 == 0) {
    *pcVar4 = '\0';
    return pcVar4;
  }
  do {
    while( true ) {
      var_11._0_1_ = (type_4)uVar10;
      var_5 = (type_2)(char)(type_4)var_11;
      if (var_5 - 0x80 < 0x80) {
        var_6[2] = '-';
        pcVar8 = var_6 + 3;
        var_5 = (int)(char)(type_4)var_11 & 0xffffff7f;
        var_6[0] = '\\';
        var_6[1] = 'M';
        var_14 = var_6 + 4;
        goto LAB_000d24b4;
      }
      if (var_5 != 0x1b) break;
      pcVar8 = var_6 + 1;
      *var_6 = '\\';
      cVar9 = 'e';
      var_14 = var_6 + 2;
LAB_000d24cb:
      var_4 = (char *)((type_4 *)var_4 + 1);
      *pcVar8 = cVar9;
      uVar10 = (type_2)(type_4)*var_4;
      var_6 = var_14;
      if (*var_4 == 0) goto LAB_000d2518;
    }
    if (0x1f < (type_4)var_11) {
      if (var_5 != 0x7f) {
        var_14 = var_6 + 1;
        pcVar8 = var_6;
        goto LAB_000d24bb;
      }
      pcVar8 = var_6 + 3;
      var_6[2] = '-';
      var_14 = var_6 + 4;
      var_6[0] = '\\';
      var_6[1] = 'C';
      cVar9 = '?';
      goto LAB_000d24cb;
    }
    *var_6 = '\\';
    if ((var_7 == 0) || (6 < var_5 - 7)) {
      pcVar8 = var_6 + 3;
      var_6[1] = 'C';
      var_6[2] = '-';
      var_11._0_1_ = (type_4)var_11 | 0x40;
      ppuVar6 = var_8();
      puVar2 = *ppuVar6;
      var_5 = (type_2)(char)(type_4)var_11;
      var_9 = puVar2[var_5];
      if ((var_9 & 0x200) == 0) {
        var_11 = var_5;
        if ((var_9 & 0x100) == 0) {
          var_14 = var_6 + 4;
          uVar10 = var_5;
          goto LAB_000d24bb;
        }
      }
      else {
        pp_Var7 = var_10();
        var_11 = (*pp_Var7)[var_5];
        if (((var_11 & 0xffffff00) != 0) || ((*(type_4 *)((int)puVar2 + var_11 * 2 + 1) & 1) == 0)
           ) {
          var_14 = var_6 + 4;
          pp_Var7 = var_10();
          var_5 = (*pp_Var7)[var_5];
          goto LAB_000d24b4;
        }
      }
      pp_Var7 = var_12();
      var_14 = var_6 + 4;
      var_5 = (*pp_Var7)[var_11];
    }
    else {
      pcVar8 = var_6 + 1;
      var_5 = *(type_2 *)(var_13 + (var_5 - 7) * 4);
      var_14 = var_6 + 2;
    }
LAB_000d24b4:
    uVar10 = var_5;
    if (var_5 != 0x1b) {
LAB_000d24bb:
      cVar9 = (char)uVar10;
      if ((var_5 == 0x5c) || (var_5 == 0x22)) {
        *pcVar8 = '\\';
        pcVar8 = var_14;
        var_14 = var_14 + 1;
      }
      goto LAB_000d24cb;
    }
    var_4 = (char *)((type_4 *)var_4 + 1);
    *pcVar8 = '\\';
    var_6 = var_14 + 1;
    *var_14 = 'e';
    uVar10 = (type_2)(type_4)*var_4;
  } while (*var_4 != 0);
LAB_000d2518:
  *var_6 = '\0';
  return pcVar4;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (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 (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (return_statement (identifier)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))) (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: (identifier))) (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined2 * MASKED(byte *param_1,int param_2)

{
  ushort uVar1;
  ushort *puVar2;
  size_t sVar3;
  undefined2 *puVar4;
  uint uVar5;
  ushort **ppuVar6;
  __int32_t **pp_Var7;
  undefined2 *puVar8;
  undefined1 uVar9;
  uint uVar10;
  undefined2 *puVar11;
  undefined2 *puVar12;
  uint local_24;
  
  sVar3 = strlen((char *)param_1);
  puVar4 = (undefined2 *)xmalloc(sVar3 * 7 + 1);
  uVar10 = (uint)*param_1;
  puVar12 = puVar4;
  if (*param_1 == 0) {
    *(undefined1 *)puVar4 = 0;
    return puVar4;
  }
  do {
    while( true ) {
      local_24._0_1_ = (byte)uVar10;
      uVar5 = (uint)(char)(byte)local_24;
      if (uVar5 - 0x80 < 0x80) {
        *(undefined1 *)(puVar12 + 1) = 0x2d;
        puVar8 = (undefined2 *)((int)puVar12 + 3);
        uVar5 = (int)(char)(byte)local_24 & 0xffffff7f;
        *puVar12 = 0x4d5c;
        puVar11 = puVar12 + 2;
        goto LAB_000d24b4;
      }
      if (uVar5 != 0x1b) break;
      puVar8 = (undefined2 *)((int)puVar12 + 1);
      *(undefined1 *)puVar12 = 0x5c;
      uVar9 = 0x65;
      puVar11 = puVar12 + 1;
LAB_000d24cb:
      param_1 = param_1 + 1;
      *(undefined1 *)puVar8 = uVar9;
      uVar10 = (uint)*param_1;
      puVar12 = puVar11;
      if (*param_1 == 0) goto LAB_000d2518;
    }
    if (0x1f < (byte)local_24) {
      if (uVar5 != 0x7f) {
        puVar11 = (undefined2 *)((int)puVar12 + 1);
        puVar8 = puVar12;
        goto LAB_000d24bb;
      }
      puVar8 = (undefined2 *)((int)puVar12 + 3);
      *(undefined1 *)(puVar12 + 1) = 0x2d;
      puVar11 = puVar12 + 2;
      *puVar12 = 0x435c;
      uVar9 = 0x3f;
      goto LAB_000d24cb;
    }
    *(undefined1 *)puVar12 = 0x5c;
    if ((param_2 == 0) || (6 < uVar5 - 7)) {
      puVar8 = (undefined2 *)((int)puVar12 + 3);
      *(undefined2 *)((int)puVar12 + 1) = 0x2d43;
      local_24._0_1_ = (byte)local_24 | 0x40;
      ppuVar6 = __ctype_b_loc();
      puVar2 = *ppuVar6;
      uVar5 = (uint)(char)(byte)local_24;
      uVar1 = puVar2[uVar5];
      if ((uVar1 & 0x200) == 0) {
        local_24 = uVar5;
        if ((uVar1 & 0x100) == 0) {
          puVar11 = puVar12 + 2;
          uVar10 = uVar5;
          goto LAB_000d24bb;
        }
      }
      else {
        pp_Var7 = __ctype_toupper_loc();
        local_24 = (*pp_Var7)[uVar5];
        if (((local_24 & 0xffffff00) != 0) || ((*(byte *)((int)puVar2 + local_24 * 2 + 1) & 1) == 0)
           ) {
          puVar11 = puVar12 + 2;
          pp_Var7 = __ctype_toupper_loc();
          uVar5 = (*pp_Var7)[uVar5];
          goto LAB_000d24b4;
        }
      }
      pp_Var7 = __ctype_tolower_loc();
      puVar11 = puVar12 + 2;
      uVar5 = (*pp_Var7)[local_24];
    }
    else {
      puVar8 = (undefined2 *)((int)puVar12 + 1);
      uVar5 = *(uint *)(&DAT_00106464 + (uVar5 - 7) * 4);
      puVar11 = puVar12 + 1;
    }
LAB_000d24b4:
    uVar10 = uVar5;
    if (uVar5 != 0x1b) {
LAB_000d24bb:
      uVar9 = (undefined1)uVar10;
      if ((uVar5 == 0x5c) || (uVar5 == 0x22)) {
        *(undefined1 *)puVar8 = 0x5c;
        puVar8 = puVar11;
        puVar11 = (undefined2 *)((int)puVar11 + 1);
      }
      goto LAB_000d24cb;
    }
    param_1 = param_1 + 1;
    *(undefined1 *)puVar8 = 0x5c;
    puVar12 = (undefined2 *)((int)puVar11 + 1);
    *(undefined1 *)puVar11 = 0x65;
    uVar10 = (uint)*param_1;
  } while (*param_1 != 0);
LAB_000d2518:
  *(undefined1 *)puVar12 = 0;
  return puVar4;
}

