
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

int __regparm3
dprintf_formatf(void *data,_func_int_int_FILE_ptr *stream,char *format,va_list ap_save)

{
  byte bVar1;
  code cVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  byte *pbVar6;
  uint uVar7;
  _func_int_int_FILE_ptr *p_Var8;
  int in_GS_OFFSET;
  _func_int_int_FILE_ptr *local_fe0;
  int local_fd8;
  char **local_fcc;
  char *endpos [128];
  va_stack_t vto [128];
  char formatbuf [32];
  char work [326];
  
  local_fcc = endpos;
  iVar5 = *(int *)(in_GS_OFFSET + 0x14);
  iVar3 = dprintf_Pass1((char *)stream,vto,local_fcc,format);
  if (iVar3 == 0) {
    cVar2 = *stream;
    if (cVar2 == (code)0x0) {
      local_fe0 = (_func_int_int_FILE_ptr *)0x0;
    }
    else {
      local_fd8 = 0;
      local_fe0 = (_func_int_int_FILE_ptr *)0x0;
      do {
        if (cVar2 == (code)0x25) {
          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {
                    /* WARNING: Load size is inaccurate */
            local_fe0 = local_fe0 + 1;
            stream = stream + 2;
            **data = 0x25;
                    /* WARNING: Load size is inaccurate */
            *(int *)data = *data + 1;
            cVar2 = *stream;
          }
          else {
            iVar3 = 0;
            while( true ) {
              stream = stream + 1;
              iVar4 = Curl_isdigit((uint)(byte)*stream);
              if (iVar4 == 0) break;
              iVar3 = (char)*stream + -0x30 + iVar3 * 10;
            }
            iVar4 = local_fd8;
            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {
              iVar4 = local_fd8;
            }
            uVar7 = vto[iVar4].flags;
            if ((uVar7 & 0x4000) == 0) {
              local_fd8 = local_fd8 + 1;
            }
            else {
              local_fd8 = local_fd8 + 2;
              if ((int)vto[vto[iVar4].width].data.str < 0) {
                uVar7 = uVar7 & 0xfffffeff | 4;
                vto[iVar4].flags = uVar7;
              }
            }
            if ((uVar7 & 0x10000) != 0) {
              local_fd8 = local_fd8 + 1;
            }
            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {
                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();
              return iVar5;
            }
            stream = (_func_int_int_FILE_ptr *)*local_fcc;
            local_fcc = local_fcc + 1;
            cVar2 = *stream;
          }
        }
        else {
                    /* WARNING: Load size is inaccurate */
          pbVar6 = *data;
          p_Var8 = local_fe0 + (1 - (int)stream);
          do {
            bVar1 = (byte)*stream;
            local_fe0 = stream + (int)p_Var8;
            stream = stream + 1;
            *pbVar6 = bVar1;
                    /* WARNING: Load size is inaccurate */
            pbVar6 = (byte *)(*data + 1);
            *(byte **)data = pbVar6;
            cVar2 = *stream;
            if (cVar2 == (code)0x25) break;
          } while (cVar2 != (code)0x0);
        }
      } while (cVar2 != (code)0x0);
    }
  }
  else {
    local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;
  }
  if (iVar5 == *(int *)(in_GS_OFFSET + 0x14)) {
    return (int)local_fe0;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



char * FUN_000374b0(void)

{
  char cVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  undefined4 extraout_ECX;
  char *pcVar5;
  uint uVar6;
  int unaff_EBP;
  char *pcVar7;
  char *pcVar8;
  int in_GS_OFFSET;
  undefined8 uVar9;
  char *local_fe0;
  int local_fd8;
  undefined4 *local_fcc;
  undefined4 local_f88 [128];
  uint local_d88 [858];
  int local_20;
  
  uVar9 = FUN_0001ab8b();
  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);
  piVar2 = (int *)uVar9;
  local_fcc = local_f88;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar3 = FUN_00035bb0(extraout_ECX);
  if (iVar3 == 0) {
    cVar1 = *pcVar8;
    if (cVar1 == '\0') {
      local_fe0 = (char *)0x0;
    }
    else {
      local_fd8 = 0;
      local_fe0 = (char *)0x0;
      do {
        if (cVar1 == '%') {
          if (pcVar8[1] == '%') {
            local_fe0 = local_fe0 + 1;
            pcVar8 = pcVar8 + 2;
            *(undefined1 *)*piVar2 = 0x25;
            *piVar2 = *piVar2 + 1;
            cVar1 = *pcVar8;
          }
          else {
            iVar3 = 0;
            while( true ) {
              pcVar8 = pcVar8 + 1;
              iVar4 = FUN_000732f0(*pcVar8);
              if (iVar4 == 0) break;
              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;
            }
            iVar4 = local_fd8;
            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {
              iVar4 = local_fd8;
            }
            uVar6 = local_d88[iVar4 * 6 + 1];
            if ((uVar6 & 0x4000) == 0) {
              local_fd8 = local_fd8 + 1;
            }
            else {
              local_fd8 = local_fd8 + 2;
              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {
                uVar6 = uVar6 & 0xfffffeff | 4;
                local_d88[iVar4 * 6 + 1] = uVar6;
              }
            }
            if ((uVar6 & 0x10000) != 0) {
              local_fd8 = local_fd8 + 1;
            }
            if (local_d88[iVar4 * 6] < 8) {
                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +
                                         *(int *)(&UNK_0004ec5a +
                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();
              return pcVar8;
            }
            pcVar8 = (char *)*local_fcc;
            local_fcc = local_fcc + 1;
            cVar1 = *pcVar8;
          }
        }
        else {
          pcVar5 = (char *)*piVar2;
          pcVar7 = local_fe0 + (1 - (int)pcVar8);
          do {
            cVar1 = *pcVar8;
            local_fe0 = pcVar8 + (int)pcVar7;
            pcVar8 = pcVar8 + 1;
            *pcVar5 = cVar1;
            pcVar5 = (char *)(*piVar2 + 1);
            *piVar2 = (int)pcVar5;
            cVar1 = *pcVar8;
            if (cVar1 == '%') break;
          } while (cVar1 != '\0');
        }
      } while (cVar1 != '\0');
    }
  }
  else {
    local_fe0 = (char *)0xffffffff;
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_fe0;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00082f60();
}


PUSH EBP
CALL 0x0001ab8b
ADD EBP,0x7f32a
PUSH EDI
MOV EDI,EDX
PUSH ESI
MOV ESI,EAX
PUSH EBX
SUB ESP,0xfdc
MOV dword ptr [ESP + 0x10],EBP
LEA EBX,[ESP + 0x64]
LEA EDX,[ESP + 0x264]
SUB ESP,0xc
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xfd8],EAX
XOR EAX,EAX
PUSH ECX
MOV EAX,EDI
MOV ECX,EBX
CALL 0x00035bb0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00038423
MOVZX EAX,byte ptr [EDI]
TEST AL,AL
JZ 0x00038381
LEA ECX,[EBP + 0xfffcf9a0]
MOV dword ptr [ESP + 0x14],0x0
MOV EBP,ESI
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x34],ECX
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESP + 0x20],EBX
CMP AL,0x25
JNZ 0x000376c8
CMP byte ptr [EDI + 0x1],0x25
JZ 0x00037700
ADD EDI,0x1
XOR ESI,ESI
JMP 0x0003755d
MOVSX EAX,byte ptr [EDI]
LEA EDX,[ESI + ESI*0x4]
ADD EDI,0x1
LEA ESI,[EAX + EDX*0x2 + -0x30]
MOVZX EAX,byte ptr [EDI]
SUB ESP,0xc
PUSH EAX
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x000732f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00037550
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV ECX,EAX
TEST ESI,ESI
JZ 0x0003758d
SUB ESI,0x1
CMP byte ptr [EDI],0x24
MOV ECX,ESI
CMOVNZ ECX,EAX
LEA EAX,[ECX + ECX*0x2]
LEA EBX,[ESP + 0xfd0]
SHL EAX,0x3
LEA EDX,[EBX + EAX*0x1]
MOV EDI,dword ptr [ESP + EAX*0x1 + 0x268]
MOV EAX,dword ptr [ESP + EAX*0x1 + 0x26c]
MOV dword ptr [ESP + 0x18],EAX
TEST EDI,0x4000
JNZ 0x00037740
ADD dword ptr [ESP + 0x14],0x1
MOV dword ptr [ESP + 0x24],EAX
MOV EBX,EDI
AND EBX,0x10000
MOV dword ptr [ESP + 0x2c],EBX
JZ 0x00037720
LEA EDX,[ECX + ECX*0x2]
ADD dword ptr [ESP + 0x14],0x1
MOV EDX,dword ptr [ESP + EDX*0x8 + 0x270]
LEA EDX,[EDX + EDX*0x2]
MOV ESI,dword ptr [ESP + EDX*0x8 + 0x274]
MOV EDX,0xffffffff
TEST ESI,ESI
CMOVS ESI,EDX
LEA EDX,[ECX + ECX*0x2]
SHL EDX,0x3
CMP dword ptr [ESP + EDX*0x1 + 0x264],0x7
JA 0x00037688
MOV EDX,dword ptr [ESP + EDX*0x1 + 0x264]
MOV EAX,dword ptr [ESP + 0x10]
ADD EAX,dword ptr [EAX + EDX*0x4 + 0xfffcf930]
JMP EAX
MOV ECX,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [ECX]
ADD ECX,0x4
MOV dword ptr [ESP + 0x20],ECX
MOVZX EAX,byte ptr [EDI]
TEST AL,AL
JNZ 0x0003752e
MOV ECX,dword ptr [ESP + 0xfcc]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP + 0xc]
JNZ 0x000384b6
ADD ESP,0xfdc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EBP]
LEA ESI,[EAX + 0x1]
SUB ESI,EDI
MOVZX EAX,byte ptr [EDI]
LEA EBX,[EDI + ESI*0x1]
ADD EDI,0x1
MOV byte ptr [EDX],AL
MOV EAX,dword ptr [EBP]
LEA EDX,[EAX + 0x1]
MOV dword ptr [EBP],EDX
MOVZX EAX,byte ptr [EDI]
CMP AL,0x25
JZ 0x000376f3
TEST AL,AL
JNZ 0x000376d4
MOV dword ptr [ESP + 0xc],EBX
JMP 0x00037698
MOV EAX,dword ptr [EBP]
ADD dword ptr [ESP + 0xc],0x1
ADD EDI,0x2
MOV byte ptr [EAX],0x25
ADD dword ptr [EBP],0x1
MOVZX EAX,byte ptr [EDI]
JMP 0x00037698
MOV ESI,0xffffffff
TEST EDI,0x8000
JZ 0x000375f9
LEA EDX,[ECX + ECX*0x2]
MOV ESI,dword ptr [ESP + EDX*0x8 + 0x270]
JMP 0x000375f9
LEA EBX,[EAX + EAX*0x2]
ADD dword ptr [ESP + 0x14],0x2
MOV EAX,dword ptr [ESP + EBX*0x8 + 0x274]
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JNS 0x000375c4
MOV EBX,EDI
NEG EAX
AND BH,0xfe
MOV dword ptr [ESP + 0x24],EAX
OR EBX,0x4
MOV EDI,EBX
MOV dword ptr [EDX + 0xfffff298],EBX
JMP 0x000375c4
MOV dword ptr [ESP + 0xc],0x0
JMP 0x000376a0
MOV dword ptr [ESP + 0xc],0xffffffff
JMP 0x000376a0
CALL 0x00082f60
(translation_unit "char * FUN_000374b0(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00082f60();\n}\n\n" (function_definition "char * FUN_000374b0(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00082f60();\n}" primitive_type (pointer_declarator "* FUN_000374b0(void)" * (function_declarator "FUN_000374b0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00082f60();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "char *local_fe0;" primitive_type (pointer_declarator "*local_fe0" * identifier) ;) (declaration "int local_fd8;" primitive_type identifier ;) (declaration "undefined4 *local_fcc;" type_identifier (pointer_declarator "*local_fcc" * identifier) ;) (declaration "undefined4 local_f88 [128];" type_identifier (array_declarator "local_f88 [128]" identifier [ number_literal ]) ;) (declaration "uint local_d88 [858];" type_identifier (array_declarator "local_d88 [858]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar9 = FUN_0001ab8b();" (assignment_expression "uVar9 = FUN_0001ab8b()" identifier = (call_expression "FUN_0001ab8b()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);" (assignment_expression "pcVar8 = (char *)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(char *)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar2 = (int *)uVar9;" (assignment_expression "piVar2 = (int *)uVar9" identifier = (cast_expression "(int *)uVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_fcc = local_f88;" (assignment_expression "local_fcc = local_f88" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00035bb0(extraout_ECX);" (assignment_expression "iVar3 = FUN_00035bb0(extraout_ECX)" identifier = (call_expression "FUN_00035bb0(extraout_ECX)" identifier (argument_list "(extraout_ECX)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }" { (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_fe0 = (char *)0x0;\n    }" { (expression_statement "local_fe0 = (char *)0x0;" (assignment_expression "local_fe0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" else (compound_statement "{\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" { (expression_statement "local_fd8 = 0;" (assignment_expression "local_fd8 = 0" identifier = number_literal) ;) (expression_statement "local_fe0 = (char *)0x0;" (assignment_expression "local_fe0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      }" { (if_statement "if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" if (parenthesized_expression "(cVar1 == '%')" ( (binary_expression "cVar1 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }" { (if_statement "if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" if (parenthesized_expression "(pcVar8[1] == '%')" ( (binary_expression "pcVar8[1] == '%'" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) == (char_literal "'%'" ' character ')) )) (compound_statement "{\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }" { (expression_statement "local_fe0 = local_fe0 + 1;" (assignment_expression "local_fe0 = local_fe0 + 1" identifier = (binary_expression "local_fe0 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = pcVar8 + 2;" (assignment_expression "pcVar8 = pcVar8 + 2" identifier = (binary_expression "pcVar8 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)*piVar2 = 0x25;" (assignment_expression "*(undefined1 *)*piVar2 = 0x25" (pointer_expression "*(undefined1 *)*piVar2" * (cast_expression "(undefined1 *)*piVar2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) = number_literal) ;) (expression_statement "*piVar2 = *piVar2 + 1;" (assignment_expression "*piVar2 = *piVar2 + 1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) }) (else_clause "else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" else (compound_statement "{\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }" { (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = FUN_000732f0(*pcVar8);" (assignment_expression "iVar4 = FUN_000732f0(*pcVar8)" identifier = (call_expression "FUN_000732f0(*pcVar8)" identifier (argument_list "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = *pcVar8 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = *pcVar8 + -0x30 + iVar3 * 10" identifier = (binary_expression "*pcVar8 + -0x30 + iVar3 * 10" (binary_expression "*pcVar8 + -0x30" (pointer_expression "*pcVar8" * identifier) + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) })) (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" identifier = identifier) ;) (if_statement "if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }" if (parenthesized_expression "((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$'))" ( (binary_expression "(iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = iVar3 + -1, *pcVar8 != '$')" ( (comma_expression "iVar4 = iVar3 + -1, *pcVar8 != '$'" (assignment_expression "iVar4 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) , (binary_expression "*pcVar8 != '$'" (pointer_expression "*pcVar8" * identifier) != (char_literal "'$'" ' character '))) ))) )) (compound_statement "{\n              iVar4 = local_fd8;\n            }" { (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" identifier = identifier) ;) })) (expression_statement "uVar6 = local_d88[iVar4 * 6 + 1];" (assignment_expression "uVar6 = local_d88[iVar4 * 6 + 1]" identifier = (subscript_expression "local_d88[iVar4 * 6 + 1]" identifier [ (binary_expression "iVar4 * 6 + 1" (binary_expression "iVar4 * 6" identifier * number_literal) + number_literal) ])) ;) (if_statement "if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" if (parenthesized_expression "((uVar6 & 0x4000) == 0)" ( (binary_expression "(uVar6 & 0x4000) == 0" (parenthesized_expression "(uVar6 & 0x4000)" ( (binary_expression "uVar6 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" { (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" identifier = (binary_expression "local_fd8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" else (compound_statement "{\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" { (expression_statement "local_fd8 = local_fd8 + 2;" (assignment_expression "local_fd8 = local_fd8 + 2" identifier = (binary_expression "local_fd8 + 2" identifier + number_literal)) ;) (if_statement "if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }" if (parenthesized_expression "((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0)" ( (binary_expression "(int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0" (cast_expression "(int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4]" identifier [ (binary_expression "local_d88[iVar4 * 6 + 2] * 6 + 4" (binary_expression "local_d88[iVar4 * 6 + 2] * 6" (subscript_expression "local_d88[iVar4 * 6 + 2]" identifier [ (binary_expression "iVar4 * 6 + 2" (binary_expression "iVar4 * 6" identifier * number_literal) + number_literal) ]) * number_literal) + number_literal) ])) < number_literal) )) (compound_statement "{\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }" { (expression_statement "uVar6 = uVar6 & 0xfffffeff | 4;" (assignment_expression "uVar6 = uVar6 & 0xfffffeff | 4" identifier = (binary_expression "uVar6 & 0xfffffeff | 4" (binary_expression "uVar6 & 0xfffffeff" identifier & number_literal) | number_literal)) ;) (expression_statement "local_d88[iVar4 * 6 + 1] = uVar6;" (assignment_expression "local_d88[iVar4 * 6 + 1] = uVar6" (subscript_expression "local_d88[iVar4 * 6 + 1]" identifier [ (binary_expression "iVar4 * 6 + 1" (binary_expression "iVar4 * 6" identifier * number_literal) + number_literal) ]) = identifier) ;) })) }))) (if_statement "if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }" if (parenthesized_expression "((uVar6 & 0x10000) != 0)" ( (binary_expression "(uVar6 & 0x10000) != 0" (parenthesized_expression "(uVar6 & 0x10000)" ( (binary_expression "uVar6 & 0x10000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" { (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" identifier = (binary_expression "local_fd8 + 1" identifier + number_literal)) ;) })) (if_statement "if (local_d88[iVar4 * 6] < 8) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }" if (parenthesized_expression "(local_d88[iVar4 * 6] < 8)" ( (binary_expression "local_d88[iVar4 * 6] < 8" (subscript_expression "local_d88[iVar4 * 6]" identifier [ (binary_expression "iVar4 * 6" identifier * number_literal) ]) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }" { comment comment (expression_statement "pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();" (assignment_expression "pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" identifier = (cast_expression "(char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" (parenthesized_expression "(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))" ( (pointer_expression "*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" * (cast_expression "(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" ( (binary_expression "unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" (binary_expression "unaff_EBP + 0x7f32a" identifier + number_literal) + (pointer_expression "*(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" * (cast_expression "(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" ( (binary_expression "&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP" (binary_expression "&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4" (pointer_expression "&UNK_0004ec5a" & identifier) + (binary_expression "local_d88[iVar4 * 6] * 4" (subscript_expression "local_d88[iVar4 * 6]" identifier [ (binary_expression "iVar4 * 6" identifier * number_literal) ]) * number_literal)) + identifier) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar8;" return identifier ;) })) (expression_statement "pcVar8 = (char *)*local_fcc;" (assignment_expression "pcVar8 = (char *)*local_fcc" identifier = (cast_expression "(char *)*local_fcc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_fcc" * identifier))) ;) (expression_statement "local_fcc = local_fcc + 1;" (assignment_expression "local_fcc = local_fcc + 1" identifier = (binary_expression "local_fcc + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) }))) }) (else_clause "else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" else (compound_statement "{\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" { (expression_statement "pcVar5 = (char *)*piVar2;" (assignment_expression "pcVar5 = (char *)*piVar2" identifier = (cast_expression "(char *)*piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) (expression_statement "pcVar7 = local_fe0 + (1 - (int)pcVar8);" (assignment_expression "pcVar7 = local_fe0 + (1 - (int)pcVar8)" identifier = (binary_expression "local_fe0 + (1 - (int)pcVar8)" identifier + (parenthesized_expression "(1 - (int)pcVar8)" ( (binary_expression "1 - (int)pcVar8" number_literal - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');" do (compound_statement "{\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          }" { (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "local_fe0 = pcVar8 + (int)pcVar7;" (assignment_expression "local_fe0 = pcVar8 + (int)pcVar7" identifier = (binary_expression "pcVar8 + (int)pcVar7" identifier + (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar5 = cVar1;" (assignment_expression "*pcVar5 = cVar1" (pointer_expression "*pcVar5" * identifier) = identifier) ;) (expression_statement "pcVar5 = (char *)(*piVar2 + 1);" (assignment_expression "pcVar5 = (char *)(*piVar2 + 1)" identifier = (cast_expression "(char *)(*piVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + 1)" ( (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal) )))) ;) (expression_statement "*piVar2 = (int)pcVar5;" (assignment_expression "*piVar2 = (int)pcVar5" (pointer_expression "*piVar2" * identifier) = (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar1 == '%') break;" if (parenthesized_expression "(cVar1 == '%')" ( (binary_expression "cVar1 == '%'" identifier == (char_literal "'%'" ' character ')) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) }) (else_clause "else {\n    local_fe0 = (char *)0xffffffff;\n  }" else (compound_statement "{\n    local_fe0 = (char *)0xffffffff;\n  }" { (expression_statement "local_fe0 = (char *)0xffffffff;" (assignment_expression "local_fe0 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_fe0;\n  }" { (return_statement "return local_fe0;" return identifier ;) })) comment (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n\nint __regparm3\ndprintf_formatf(void *data,_func_int_int_FILE_ptr *stream,char *format,va_list ap_save)\n\n{\n  byte bVar1;\n  code cVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  _func_int_int_FILE_ptr *p_Var8;\n  int in_GS_OFFSET;\n  _func_int_int_FILE_ptr *local_fe0;\n  int local_fd8;\n  char **local_fcc;\n  char *endpos [128];\n  va_stack_t vto [128];\n  char formatbuf [32];\n  char work [326];\n  \n  local_fcc = endpos;\n  iVar5 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = dprintf_Pass1((char *)stream,vto,local_fcc,format);\n  if (iVar3 == 0) {\n    cVar2 = *stream;\n    if (cVar2 == (code)0x0) {\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }\n  }\n  else {\n    local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;\n  }\n  if (iVar5 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)local_fe0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "int __regparm3\ndprintf_formatf(void *data,_func_int_int_FILE_ptr *stream,char *format,va_list ap_save)\n\n{\n  byte bVar1;\n  code cVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  _func_int_int_FILE_ptr *p_Var8;\n  int in_GS_OFFSET;\n  _func_int_int_FILE_ptr *local_fe0;\n  int local_fd8;\n  char **local_fcc;\n  char *endpos [128];\n  va_stack_t vto [128];\n  char formatbuf [32];\n  char work [326];\n  \n  local_fcc = endpos;\n  iVar5 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = dprintf_Pass1((char *)stream,vto,local_fcc,format);\n  if (iVar3 == 0) {\n    cVar2 = *stream;\n    if (cVar2 == (code)0x0) {\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }\n  }\n  else {\n    local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;\n  }\n  if (iVar5 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)local_fe0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "dprintf_formatf(void *data,_func_int_int_FILE_ptr *stream,char *format,va_list ap_save)" identifier (parameter_list "(void *data,_func_int_int_FILE_ptr *stream,char *format,va_list ap_save)" ( (parameter_declaration "void *data" primitive_type (pointer_declarator "*data" * identifier)) , (parameter_declaration "_func_int_int_FILE_ptr *stream" type_identifier (pointer_declarator "*stream" * identifier)) , (parameter_declaration "char *format" primitive_type (pointer_declarator "*format" * identifier)) , (parameter_declaration "va_list ap_save" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  code cVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  _func_int_int_FILE_ptr *p_Var8;\n  int in_GS_OFFSET;\n  _func_int_int_FILE_ptr *local_fe0;\n  int local_fd8;\n  char **local_fcc;\n  char *endpos [128];\n  va_stack_t vto [128];\n  char formatbuf [32];\n  char work [326];\n  \n  local_fcc = endpos;\n  iVar5 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = dprintf_Pass1((char *)stream,vto,local_fcc,format);\n  if (iVar3 == 0) {\n    cVar2 = *stream;\n    if (cVar2 == (code)0x0) {\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }\n  }\n  else {\n    local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;\n  }\n  if (iVar5 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)local_fe0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code cVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "_func_int_int_FILE_ptr *p_Var8;" type_identifier (pointer_declarator "*p_Var8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "_func_int_int_FILE_ptr *local_fe0;" type_identifier (pointer_declarator "*local_fe0" * identifier) ;) (declaration "int local_fd8;" primitive_type identifier ;) (declaration "char **local_fcc;" primitive_type (pointer_declarator "**local_fcc" * (pointer_declarator "*local_fcc" * identifier)) ;) (declaration "char *endpos [128];" primitive_type (pointer_declarator "*endpos [128]" * (array_declarator "endpos [128]" identifier [ number_literal ])) ;) (declaration "va_stack_t vto [128];" type_identifier (array_declarator "vto [128]" identifier [ number_literal ]) ;) (declaration "char formatbuf [32];" primitive_type (array_declarator "formatbuf [32]" identifier [ number_literal ]) ;) (declaration "char work [326];" primitive_type (array_declarator "work [326]" identifier [ number_literal ]) ;) (expression_statement "local_fcc = endpos;" (assignment_expression "local_fcc = endpos" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar5 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = dprintf_Pass1((char *)stream,vto,local_fcc,format);" (assignment_expression "iVar3 = dprintf_Pass1((char *)stream,vto,local_fcc,format)" identifier = (call_expression "dprintf_Pass1((char *)stream,vto,local_fcc,format)" identifier (argument_list "((char *)stream,vto,local_fcc,format)" ( (cast_expression "(char *)stream" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    cVar2 = *stream;\n    if (cVar2 == (code)0x0) {\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }\n  }\n  else {\n    local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    cVar2 = *stream;\n    if (cVar2 == (code)0x0) {\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }\n  }" { (expression_statement "cVar2 = *stream;" (assignment_expression "cVar2 = *stream" identifier = (pointer_expression "*stream" * identifier)) ;) (if_statement "if (cVar2 == (code)0x0) {\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }" if (parenthesized_expression "(cVar2 == (code)0x0)" ( (binary_expression "cVar2 == (code)0x0" identifier == (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n    }" { (expression_statement "local_fe0 = (_func_int_int_FILE_ptr *)0x0;" (assignment_expression "local_fe0 = (_func_int_int_FILE_ptr *)0x0" identifier = (cast_expression "(_func_int_int_FILE_ptr *)0x0" ( (type_descriptor "_func_int_int_FILE_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }" else (compound_statement "{\n      local_fd8 = 0;\n      local_fe0 = (_func_int_int_FILE_ptr *)0x0;\n      do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);\n    }" { (expression_statement "local_fd8 = 0;" (assignment_expression "local_fd8 = 0" identifier = number_literal) ;) (expression_statement "local_fe0 = (_func_int_int_FILE_ptr *)0x0;" (assignment_expression "local_fe0 = (_func_int_int_FILE_ptr *)0x0" identifier = (cast_expression "(_func_int_int_FILE_ptr *)0x0" ( (type_descriptor "_func_int_int_FILE_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      } while (cVar2 != (code)0x0);" do (compound_statement "{\n        if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }\n      }" { (if_statement "if (cVar2 == (code)0x25) {\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }\n        else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }" if (parenthesized_expression "(cVar2 == (code)0x25)" ( (binary_expression "cVar2 == (code)0x25" identifier == (cast_expression "(code)0x25" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (compound_statement "{\n          if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }\n        }" { (if_statement "if (stream[1] == (_func_int_int_FILE_ptr)0x25) {\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }" if (parenthesized_expression "(stream[1] == (_func_int_int_FILE_ptr)0x25)" ( (binary_expression "stream[1] == (_func_int_int_FILE_ptr)0x25" (subscript_expression "stream[1]" identifier [ number_literal ]) == (cast_expression "(_func_int_int_FILE_ptr)0x25" ( (type_descriptor "_func_int_int_FILE_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n            local_fe0 = local_fe0 + 1;\n            stream = stream + 2;\n            **data = 0x25;\n                    /* WARNING: Load size is inaccurate */\n            *(int *)data = *data + 1;\n            cVar2 = *stream;\n          }" { comment (expression_statement "local_fe0 = local_fe0 + 1;" (assignment_expression "local_fe0 = local_fe0 + 1" identifier = (binary_expression "local_fe0 + 1" identifier + number_literal)) ;) (expression_statement "stream = stream + 2;" (assignment_expression "stream = stream + 2" identifier = (binary_expression "stream + 2" identifier + number_literal)) ;) (expression_statement "**data = 0x25;" (assignment_expression "**data = 0x25" (pointer_expression "**data" * (pointer_expression "*data" * identifier)) = number_literal) ;) comment (expression_statement "*(int *)data = *data + 1;" (assignment_expression "*(int *)data = *data + 1" (pointer_expression "*(int *)data" * (cast_expression "(int *)data" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*data + 1" (pointer_expression "*data" * identifier) + number_literal)) ;) (expression_statement "cVar2 = *stream;" (assignment_expression "cVar2 = *stream" identifier = (pointer_expression "*stream" * identifier)) ;) }) (else_clause "else {\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }" else (compound_statement "{\n            iVar3 = 0;\n            while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }\n            uVar7 = vto[iVar4].flags;\n            if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }\n            if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }\n            stream = (_func_int_int_FILE_ptr *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar2 = *stream;\n          }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              stream = stream + 1;\n              iVar4 = Curl_isdigit((uint)(byte)*stream);\n              if (iVar4 == 0) break;\n              iVar3 = (char)*stream + -0x30 + iVar3 * 10;\n            }" { (expression_statement "stream = stream + 1;" (assignment_expression "stream = stream + 1" identifier = (binary_expression "stream + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = Curl_isdigit((uint)(byte)*stream);" (assignment_expression "iVar4 = Curl_isdigit((uint)(byte)*stream)" identifier = (call_expression "Curl_isdigit((uint)(byte)*stream)" identifier (argument_list "((uint)(byte)*stream)" ( (binary_expression "(uint)(byte)*stream" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier) )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (char)*stream + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = (char)*stream + -0x30 + iVar3 * 10" identifier = (binary_expression "(char)*stream + -0x30 + iVar3 * 10" (binary_expression "(char)*stream + -0x30" (cast_expression "(char)*stream" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*stream" * identifier)) + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) })) (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" identifier = identifier) ;) (if_statement "if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)) {\n              iVar4 = local_fd8;\n            }" if (parenthesized_expression "((iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24))" ( (binary_expression "(iVar3 != 0) && (iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24)" ( (comma_expression "iVar4 = iVar3 + -1, *stream != (_func_int_int_FILE_ptr)0x24" (assignment_expression "iVar4 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) , (binary_expression "*stream != (_func_int_int_FILE_ptr)0x24" (pointer_expression "*stream" * identifier) != (cast_expression "(_func_int_int_FILE_ptr)0x24" ( (type_descriptor "_func_int_int_FILE_ptr" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              iVar4 = local_fd8;\n            }" { (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" identifier = identifier) ;) })) (expression_statement "uVar7 = vto[iVar4].flags;" (assignment_expression "uVar7 = vto[iVar4].flags" identifier = (field_expression "vto[iVar4].flags" (subscript_expression "vto[iVar4]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if ((uVar7 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }" if (parenthesized_expression "((uVar7 & 0x4000) == 0)" ( (binary_expression "(uVar7 & 0x4000) == 0" (parenthesized_expression "(uVar7 & 0x4000)" ( (binary_expression "uVar7 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" { (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" identifier = (binary_expression "local_fd8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }" else (compound_statement "{\n              local_fd8 = local_fd8 + 2;\n              if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }\n            }" { (expression_statement "local_fd8 = local_fd8 + 2;" (assignment_expression "local_fd8 = local_fd8 + 2" identifier = (binary_expression "local_fd8 + 2" identifier + number_literal)) ;) (if_statement "if ((int)vto[vto[iVar4].width].data.str < 0) {\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }" if (parenthesized_expression "((int)vto[vto[iVar4].width].data.str < 0)" ( (binary_expression "(int)vto[vto[iVar4].width].data.str < 0" (cast_expression "(int)vto[vto[iVar4].width].data.str" ( (type_descriptor "int" primitive_type) ) (field_expression "vto[vto[iVar4].width].data.str" (field_expression "vto[vto[iVar4].width].data" (subscript_expression "vto[vto[iVar4].width]" identifier [ (field_expression "vto[iVar4].width" (subscript_expression "vto[iVar4]" identifier [ identifier ]) . field_identifier) ]) . field_identifier) . field_identifier)) < number_literal) )) (compound_statement "{\n                uVar7 = uVar7 & 0xfffffeff | 4;\n                vto[iVar4].flags = uVar7;\n              }" { (expression_statement "uVar7 = uVar7 & 0xfffffeff | 4;" (assignment_expression "uVar7 = uVar7 & 0xfffffeff | 4" identifier = (binary_expression "uVar7 & 0xfffffeff | 4" (binary_expression "uVar7 & 0xfffffeff" identifier & number_literal) | number_literal)) ;) (expression_statement "vto[iVar4].flags = uVar7;" (assignment_expression "vto[iVar4].flags = uVar7" (field_expression "vto[iVar4].flags" (subscript_expression "vto[iVar4]" identifier [ identifier ]) . field_identifier) = identifier) ;) })) }))) (if_statement "if ((uVar7 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }" if (parenthesized_expression "((uVar7 & 0x10000) != 0)" ( (binary_expression "(uVar7 & 0x10000) != 0" (parenthesized_expression "(uVar7 & 0x10000)" ( (binary_expression "uVar7 & 0x10000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" { (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" identifier = (binary_expression "local_fd8 + 1" identifier + number_literal)) ;) })) (if_statement "if (vto[iVar4].type < FORMAT_LONGDOUBLE) {\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }" if (parenthesized_expression "(vto[iVar4].type < FORMAT_LONGDOUBLE)" ( (binary_expression "vto[iVar4].type < FORMAT_LONGDOUBLE" (field_expression "vto[iVar4].type" (subscript_expression "vto[iVar4]" identifier [ identifier ]) . field_identifier) < identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();\n              return iVar5;\n            }" { comment comment (expression_statement "iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))();" (assignment_expression "iVar5 = (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))()" identifier = (call_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))()" (parenthesized_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)))" ( (pointer_expression "*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4))" * (cast_expression "(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4))" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ +\n                                *(int *)(&DAT_00086110 + vto[iVar4].type * 4)" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (pointer_expression "*(int *)(&DAT_00086110 + vto[iVar4].type * 4)" * (cast_expression "(int *)(&DAT_00086110 + vto[iVar4].type * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00086110 + vto[iVar4].type * 4)" ( (binary_expression "&DAT_00086110 + vto[iVar4].type * 4" (pointer_expression "&DAT_00086110" & identifier) + (binary_expression "vto[iVar4].type * 4" (field_expression "vto[iVar4].type" (subscript_expression "vto[iVar4]" identifier [ identifier ]) . field_identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar5;" return identifier ;) })) (expression_statement "stream = (_func_int_int_FILE_ptr *)*local_fcc;" (assignment_expression "stream = (_func_int_int_FILE_ptr *)*local_fcc" identifier = (cast_expression "(_func_int_int_FILE_ptr *)*local_fcc" ( (type_descriptor "_func_int_int_FILE_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_fcc" * identifier))) ;) (expression_statement "local_fcc = local_fcc + 1;" (assignment_expression "local_fcc = local_fcc + 1" identifier = (binary_expression "local_fcc + 1" identifier + number_literal)) ;) (expression_statement "cVar2 = *stream;" (assignment_expression "cVar2 = *stream" identifier = (pointer_expression "*stream" * identifier)) ;) }))) }) (else_clause "else {\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }" else (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n          pbVar6 = *data;\n          p_Var8 = local_fe0 + (1 - (int)stream);\n          do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);\n        }" { comment (expression_statement "pbVar6 = *data;" (assignment_expression "pbVar6 = *data" identifier = (pointer_expression "*data" * identifier)) ;) (expression_statement "p_Var8 = local_fe0 + (1 - (int)stream);" (assignment_expression "p_Var8 = local_fe0 + (1 - (int)stream)" identifier = (binary_expression "local_fe0 + (1 - (int)stream)" identifier + (parenthesized_expression "(1 - (int)stream)" ( (binary_expression "1 - (int)stream" number_literal - (cast_expression "(int)stream" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          } while (cVar2 != (code)0x0);" do (compound_statement "{\n            bVar1 = (byte)*stream;\n            local_fe0 = stream + (int)p_Var8;\n            stream = stream + 1;\n            *pbVar6 = bVar1;\n                    /* WARNING: Load size is inaccurate */\n            pbVar6 = (byte *)(*data + 1);\n            *(byte **)data = pbVar6;\n            cVar2 = *stream;\n            if (cVar2 == (code)0x25) break;\n          }" { (expression_statement "bVar1 = (byte)*stream;" (assignment_expression "bVar1 = (byte)*stream" identifier = (binary_expression "(byte)*stream" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "local_fe0 = stream + (int)p_Var8;" (assignment_expression "local_fe0 = stream + (int)p_Var8" identifier = (binary_expression "stream + (int)p_Var8" identifier + (cast_expression "(int)p_Var8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "stream = stream + 1;" (assignment_expression "stream = stream + 1" identifier = (binary_expression "stream + 1" identifier + number_literal)) ;) (expression_statement "*pbVar6 = bVar1;" (assignment_expression "*pbVar6 = bVar1" (pointer_expression "*pbVar6" * identifier) = identifier) ;) comment (expression_statement "pbVar6 = (byte *)(*data + 1);" (assignment_expression "pbVar6 = (byte *)(*data + 1)" identifier = (cast_expression "(byte *)(*data + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*data + 1)" ( (binary_expression "*data + 1" (pointer_expression "*data" * identifier) + number_literal) )))) ;) (expression_statement "*(byte **)data = pbVar6;" (assignment_expression "*(byte **)data = pbVar6" (pointer_expression "*(byte **)data" * (cast_expression "(byte **)data" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "cVar2 = *stream;" (assignment_expression "cVar2 = *stream" identifier = (pointer_expression "*stream" * identifier)) ;) (if_statement "if (cVar2 == (code)0x25) break;" if (parenthesized_expression "(cVar2 == (code)0x25)" ( (binary_expression "cVar2 == (code)0x25" identifier == (cast_expression "(code)0x25" ( (type_descriptor "code" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(cVar2 != (code)0x0)" ( (binary_expression "cVar2 != (code)0x0" identifier != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) ;) }))) }) while (parenthesized_expression "(cVar2 != (code)0x0)" ( (binary_expression "cVar2 != (code)0x0" identifier != (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) )) ;) }))) }) (else_clause "else {\n    local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;\n  }" else (compound_statement "{\n    local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;\n  }" { (expression_statement "local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff;" (assignment_expression "local_fe0 = (_func_int_int_FILE_ptr *)0xffffffff" identifier = (cast_expression "(_func_int_int_FILE_ptr *)0xffffffff" ( (type_descriptor "_func_int_int_FILE_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (iVar5 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)local_fe0;\n  }" if (parenthesized_expression "(iVar5 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar5 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return (int)local_fe0;\n  }" { (return_statement "return (int)local_fe0;" return (cast_expression "(int)local_fe0" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "char * FUN_000374b0(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    \n  FUN_00082f60();\n}\n\n" (function_definition "char * FUN_000374b0(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    \n  FUN_00082f60();\n}" primitive_type (pointer_declarator "* FUN_000374b0(void)" * (function_declarator "FUN_000374b0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    \n  FUN_00082f60();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "char *local_fe0;" primitive_type (pointer_declarator "*local_fe0" * identifier) ;) (declaration "int local_fd8;" primitive_type identifier ;) (declaration "undefined4 *local_fcc;" type_identifier (pointer_declarator "*local_fcc" * identifier) ;) (declaration "undefined4 local_f88 [128];" type_identifier (array_declarator "local_f88 [128]" identifier [ number_literal ]) ;) (declaration "uint local_d88 [858];" type_identifier (array_declarator "local_d88 [858]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar9 = FUN_0001ab8b();" (assignment_expression "uVar9 = FUN_0001ab8b()" identifier = (call_expression "FUN_0001ab8b()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);" (assignment_expression "pcVar8 = (char *)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(char *)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar2 = (int *)uVar9;" (assignment_expression "piVar2 = (int *)uVar9" identifier = (cast_expression "(int *)uVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_fcc = local_f88;" (assignment_expression "local_fcc = local_f88" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_00035bb0(extraout_ECX);" (assignment_expression "iVar3 = FUN_00035bb0(extraout_ECX)" identifier = (call_expression "FUN_00035bb0(extraout_ECX)" identifier (argument_list "(extraout_ECX)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }" { (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_fe0 = (char *)0x0;\n    }" { (expression_statement "local_fe0 = (char *)0x0;" (assignment_expression "local_fe0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" else (compound_statement "{\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" { (expression_statement "local_fd8 = 0;" (assignment_expression "local_fd8 = 0" identifier = number_literal) ;) (expression_statement "local_fe0 = (char *)0x0;" (assignment_expression "local_fe0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      }" { (if_statement "if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" if (parenthesized_expression "(cVar1 == '%')" ( (binary_expression "cVar1 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }" { (if_statement "if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" if (parenthesized_expression "(pcVar8[1] == '%')" ( (binary_expression "pcVar8[1] == '%'" (subscript_expression "pcVar8[1]" identifier [ number_literal ]) == (char_literal "'%'" ' character ')) )) (compound_statement "{\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }" { (expression_statement "local_fe0 = local_fe0 + 1;" (assignment_expression "local_fe0 = local_fe0 + 1" identifier = (binary_expression "local_fe0 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = pcVar8 + 2;" (assignment_expression "pcVar8 = pcVar8 + 2" identifier = (binary_expression "pcVar8 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)*piVar2 = 0x25;" (assignment_expression "*(undefined1 *)*piVar2 = 0x25" (pointer_expression "*(undefined1 *)*piVar2" * (cast_expression "(undefined1 *)*piVar2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) = number_literal) ;) (expression_statement "*piVar2 = *piVar2 + 1;" (assignment_expression "*piVar2 = *piVar2 + 1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) }) (else_clause "else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" else (compound_statement "{\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }" { (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = FUN_000732f0(*pcVar8);" (assignment_expression "iVar4 = FUN_000732f0(*pcVar8)" identifier = (call_expression "FUN_000732f0(*pcVar8)" identifier (argument_list "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = *pcVar8 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = *pcVar8 + -0x30 + iVar3 * 10" identifier = (binary_expression "*pcVar8 + -0x30 + iVar3 * 10" (binary_expression "*pcVar8 + -0x30" (pointer_expression "*pcVar8" * identifier) + number_literal) + (binary_expression "iVar3 * 10" identifier * number_literal))) ;) })) (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" identifier = identifier) ;) (if_statement "if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }" if (parenthesized_expression "((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$'))" ( (binary_expression "(iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = iVar3 + -1, *pcVar8 != '$')" ( (comma_expression "iVar4 = iVar3 + -1, *pcVar8 != '$'" (assignment_expression "iVar4 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) , (binary_expression "*pcVar8 != '$'" (pointer_expression "*pcVar8" * identifier) != (char_literal "'$'" ' character '))) ))) )) (compound_statement "{\n              iVar4 = local_fd8;\n            }" { (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" identifier = identifier) ;) })) (expression_statement "uVar6 = local_d88[iVar4 * 6 + 1];" (assignment_expression "uVar6 = local_d88[iVar4 * 6 + 1]" identifier = (subscript_expression "local_d88[iVar4 * 6 + 1]" identifier [ (binary_expression "iVar4 * 6 + 1" (binary_expression "iVar4 * 6" identifier * number_literal) + number_literal) ])) ;) (if_statement "if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" if (parenthesized_expression "((uVar6 & 0x4000) == 0)" ( (binary_expression "(uVar6 & 0x4000) == 0" (parenthesized_expression "(uVar6 & 0x4000)" ( (binary_expression "uVar6 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" { (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" identifier = (binary_expression "local_fd8 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" else (compound_statement "{\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" { (expression_statement "local_fd8 = local_fd8 + 2;" (assignment_expression "local_fd8 = local_fd8 + 2" identifier = (binary_expression "local_fd8 + 2" identifier + number_literal)) ;) (if_statement "if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }" if (parenthesized_expression "((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0)" ( (binary_expression "(int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0" (cast_expression "(int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4]" identifier [ (binary_expression "local_d88[iVar4 * 6 + 2] * 6 + 4" (binary_expression "local_d88[iVar4 * 6 + 2] * 6" (subscript_expression "local_d88[iVar4 * 6 + 2]" identifier [ (binary_expression "iVar4 * 6 + 2" (binary_expression "iVar4 * 6" identifier * number_literal) + number_literal) ]) * number_literal) + number_literal) ])) < number_literal) )) (compound_statement "{\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }" { (expression_statement "uVar6 = uVar6 & 0xfffffeff | 4;" (assignment_expression "uVar6 = uVar6 & 0xfffffeff | 4" identifier = (binary_expression "uVar6 & 0xfffffeff | 4" (binary_expression "uVar6 & 0xfffffeff" identifier & number_literal) | number_literal)) ;) (expression_statement "local_d88[iVar4 * 6 + 1] = uVar6;" (assignment_expression "local_d88[iVar4 * 6 + 1] = uVar6" (subscript_expression "local_d88[iVar4 * 6 + 1]" identifier [ (binary_expression "iVar4 * 6 + 1" (binary_expression "iVar4 * 6" identifier * number_literal) + number_literal) ]) = identifier) ;) })) }))) (if_statement "if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }" if (parenthesized_expression "((uVar6 & 0x10000) != 0)" ( (binary_expression "(uVar6 & 0x10000) != 0" (parenthesized_expression "(uVar6 & 0x10000)" ( (binary_expression "uVar6 & 0x10000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" { (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" identifier = (binary_expression "local_fd8 + 1" identifier + number_literal)) ;) })) (if_statement "if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }" if (parenthesized_expression "(local_d88[iVar4 * 6] < 8)" ( (binary_expression "local_d88[iVar4 * 6] < 8" (subscript_expression "local_d88[iVar4 * 6]" identifier [ (binary_expression "iVar4 * 6" identifier * number_literal) ]) < number_literal) )) (compound_statement "{\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }" { (expression_statement "pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();" (assignment_expression "pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" identifier = (cast_expression "(char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" (parenthesized_expression "(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))" ( (pointer_expression "*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" * (cast_expression "(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" ( (binary_expression "unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" (binary_expression "unaff_EBP + 0x7f32a" identifier + number_literal) + (pointer_expression "*(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" * (cast_expression "(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" ( (binary_expression "&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP" (binary_expression "&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4" (pointer_expression "&UNK_0004ec5a" & identifier) + (binary_expression "local_d88[iVar4 * 6] * 4" (subscript_expression "local_d88[iVar4 * 6]" identifier [ (binary_expression "iVar4 * 6" identifier * number_literal) ]) * number_literal)) + identifier) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar8;" return identifier ;) })) (expression_statement "pcVar8 = (char *)*local_fcc;" (assignment_expression "pcVar8 = (char *)*local_fcc" identifier = (cast_expression "(char *)*local_fcc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_fcc" * identifier))) ;) (expression_statement "local_fcc = local_fcc + 1;" (assignment_expression "local_fcc = local_fcc + 1" identifier = (binary_expression "local_fcc + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) }))) }) (else_clause "else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" else (compound_statement "{\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" { (expression_statement "pcVar5 = (char *)*piVar2;" (assignment_expression "pcVar5 = (char *)*piVar2" identifier = (cast_expression "(char *)*piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) (expression_statement "pcVar7 = local_fe0 + (1 - (int)pcVar8);" (assignment_expression "pcVar7 = local_fe0 + (1 - (int)pcVar8)" identifier = (binary_expression "local_fe0 + (1 - (int)pcVar8)" identifier + (parenthesized_expression "(1 - (int)pcVar8)" ( (binary_expression "1 - (int)pcVar8" number_literal - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');" do (compound_statement "{\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          }" { (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "local_fe0 = pcVar8 + (int)pcVar7;" (assignment_expression "local_fe0 = pcVar8 + (int)pcVar7" identifier = (binary_expression "pcVar8 + (int)pcVar7" identifier + (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar5 = cVar1;" (assignment_expression "*pcVar5 = cVar1" (pointer_expression "*pcVar5" * identifier) = identifier) ;) (expression_statement "pcVar5 = (char *)(*piVar2 + 1);" (assignment_expression "pcVar5 = (char *)(*piVar2 + 1)" identifier = (cast_expression "(char *)(*piVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + 1)" ( (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal) )))) ;) (expression_statement "*piVar2 = (int)pcVar5;" (assignment_expression "*piVar2 = (int)pcVar5" (pointer_expression "*piVar2" * identifier) = (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if (cVar1 == '%') break;" if (parenthesized_expression "(cVar1 == '%')" ( (binary_expression "cVar1 == '%'" identifier == (char_literal "'%'" ' character ')) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) }) (else_clause "else {\n    local_fe0 = (char *)0xffffffff;\n  }" else (compound_statement "{\n    local_fe0 = (char *)0xffffffff;\n  }" { (expression_statement "local_fe0 = (char *)0xffffffff;" (assignment_expression "local_fe0 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return local_fe0;\n  }" { (return_statement "return local_fe0;" return identifier ;) })) (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) != (char_literal ' character '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) (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)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) * LIT) + LIT) ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = 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)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) * LIT)) + IDENT) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) }))) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "char * FUN_000374b0(void)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    \n  FUN_00082f60();\n}" (primitive_type "char") (pointer_declarator "* FUN_000374b0(void)" (* "*") (function_declarator "FUN_000374b0(void)" (identifier "FUN_000374b0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 extraout_ECX;\n  char *pcVar5;\n  uint uVar6;\n  int unaff_EBP;\n  char *pcVar7;\n  char *pcVar8;\n  int in_GS_OFFSET;\n  undefined8 uVar9;\n  char *local_fe0;\n  int local_fd8;\n  undefined4 *local_fcc;\n  undefined4 local_f88 [128];\n  uint local_d88 [858];\n  int local_20;\n  \n  uVar9 = FUN_0001ab8b();\n  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);\n  piVar2 = (int *)uVar9;\n  local_fcc = local_f88;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = FUN_00035bb0(extraout_ECX);\n  if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }\n                    \n  FUN_00082f60();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "char *local_fe0;" (primitive_type "char") (pointer_declarator "*local_fe0" (* "*") (identifier "local_fe0")) (; ";")) (declaration "int local_fd8;" (primitive_type "int") (identifier "local_fd8") (; ";")) (declaration "undefined4 *local_fcc;" (type_identifier "undefined4") (pointer_declarator "*local_fcc" (* "*") (identifier "local_fcc")) (; ";")) (declaration "undefined4 local_f88 [128];" (type_identifier "undefined4") (array_declarator "local_f88 [128]" (identifier "local_f88") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "uint local_d88 [858];" (type_identifier "uint") (array_declarator "local_d88 [858]" (identifier "local_d88") ([ "[") (number_literal "858") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "uVar9 = FUN_0001ab8b();" (assignment_expression "uVar9 = FUN_0001ab8b()" (identifier "uVar9") (= "=") (call_expression "FUN_0001ab8b()" (identifier "FUN_0001ab8b") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);" (assignment_expression "pcVar8 = (char *)((ulonglong)uVar9 >> 0x20)" (identifier "pcVar8") (= "=") (cast_expression "(char *)((ulonglong)uVar9 >> 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "piVar2 = (int *)uVar9;" (assignment_expression "piVar2 = (int *)uVar9" (identifier "piVar2") (= "=") (cast_expression "(int *)uVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "local_fcc = local_f88;" (assignment_expression "local_fcc = local_f88" (identifier "local_fcc") (= "=") (identifier "local_f88")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar3 = FUN_00035bb0(extraout_ECX);" (assignment_expression "iVar3 = FUN_00035bb0(extraout_ECX)" (identifier "iVar3") (= "=") (call_expression "FUN_00035bb0(extraout_ECX)" (identifier "FUN_00035bb0") (argument_list "(extraout_ECX)" (( "(") (identifier "extraout_ECX") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }\n  else {\n    local_fe0 = (char *)0xffffffff;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    cVar1 = *pcVar8;\n    if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }\n  }" ({ "{") (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (if_statement "if (cVar1 == '\0') {\n      local_fe0 = (char *)0x0;\n    }\n    else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_fe0 = (char *)0x0;\n    }" ({ "{") (expression_statement "local_fe0 = (char *)0x0;" (assignment_expression "local_fe0 = (char *)0x0" (identifier "local_fe0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" (else "else") (compound_statement "{\n      local_fd8 = 0;\n      local_fe0 = (char *)0x0;\n      do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');\n    }" ({ "{") (expression_statement "local_fd8 = 0;" (assignment_expression "local_fd8 = 0" (identifier "local_fd8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_fe0 = (char *)0x0;" (assignment_expression "local_fe0 = (char *)0x0" (identifier "local_fe0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      } while (cVar1 != '\0');" (do "do") (compound_statement "{\n        if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }\n      }" ({ "{") (if_statement "if (cVar1 == '%') {\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }\n        else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" (if "if") (parenthesized_expression "(cVar1 == '%')" (( "(") (binary_expression "cVar1 == '%'" (identifier "cVar1") (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (compound_statement "{\n          if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }\n        }" ({ "{") (if_statement "if (pcVar8[1] == '%') {\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }\n          else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" (if "if") (parenthesized_expression "(pcVar8[1] == '%')" (( "(") (binary_expression "pcVar8[1] == '%'" (subscript_expression "pcVar8[1]" (identifier "pcVar8") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (compound_statement "{\n            local_fe0 = local_fe0 + 1;\n            pcVar8 = pcVar8 + 2;\n            *(undefined1 *)*piVar2 = 0x25;\n            *piVar2 = *piVar2 + 1;\n            cVar1 = *pcVar8;\n          }" ({ "{") (expression_statement "local_fe0 = local_fe0 + 1;" (assignment_expression "local_fe0 = local_fe0 + 1" (identifier "local_fe0") (= "=") (binary_expression "local_fe0 + 1" (identifier "local_fe0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + 2;" (assignment_expression "pcVar8 = pcVar8 + 2" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 2" (identifier "pcVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(undefined1 *)*piVar2 = 0x25;" (assignment_expression "*(undefined1 *)*piVar2 = 0x25" (pointer_expression "*(undefined1 *)*piVar2" (* "*") (cast_expression "(undefined1 *)*piVar2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (= "=") (number_literal "0x25")) (; ";")) (expression_statement "*piVar2 = *piVar2 + 1;" (assignment_expression "*piVar2 = *piVar2 + 1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (} "}")) (else_clause "else {\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" (else "else") (compound_statement "{\n            iVar3 = 0;\n            while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }\n            iVar4 = local_fd8;\n            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }\n            uVar6 = local_d88[iVar4 * 6 + 1];\n            if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }\n            if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }\n            pcVar8 = (char *)*local_fcc;\n            local_fcc = local_fcc + 1;\n            cVar1 = *pcVar8;\n          }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              pcVar8 = pcVar8 + 1;\n              iVar4 = FUN_000732f0(*pcVar8);\n              if (iVar4 == 0) break;\n              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;\n            }" ({ "{") (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = FUN_000732f0(*pcVar8);" (assignment_expression "iVar4 = FUN_000732f0(*pcVar8)" (identifier "iVar4") (= "=") (call_expression "FUN_000732f0(*pcVar8)" (identifier "FUN_000732f0") (argument_list "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = *pcVar8 + -0x30 + iVar3 * 10;" (assignment_expression "iVar3 = *pcVar8 + -0x30 + iVar3 * 10" (identifier "iVar3") (= "=") (binary_expression "*pcVar8 + -0x30 + iVar3 * 10" (binary_expression "*pcVar8 + -0x30" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar3 * 10" (identifier "iVar3") (* "*") (number_literal "10")))) (; ";")) (} "}"))) (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" (identifier "iVar4") (= "=") (identifier "local_fd8")) (; ";")) (if_statement "if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {\n              iVar4 = local_fd8;\n            }" (if "if") (parenthesized_expression "((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$'))" (( "(") (binary_expression "(iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = iVar3 + -1, *pcVar8 != '$')" (( "(") (comma_expression "iVar4 = iVar3 + -1, *pcVar8 != '$'" (assignment_expression "iVar4 = iVar3 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "*pcVar8 != '$'" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (!= "!=") (char_literal "'$'" (' "'") (character "$") (' "'")))) () ")"))) () ")")) (compound_statement "{\n              iVar4 = local_fd8;\n            }" ({ "{") (expression_statement "iVar4 = local_fd8;" (assignment_expression "iVar4 = local_fd8" (identifier "iVar4") (= "=") (identifier "local_fd8")) (; ";")) (} "}"))) (expression_statement "uVar6 = local_d88[iVar4 * 6 + 1];" (assignment_expression "uVar6 = local_d88[iVar4 * 6 + 1]" (identifier "uVar6") (= "=") (subscript_expression "local_d88[iVar4 * 6 + 1]" (identifier "local_d88") ([ "[") (binary_expression "iVar4 * 6 + 1" (binary_expression "iVar4 * 6" (identifier "iVar4") (* "*") (number_literal "6")) (+ "+") (number_literal "1")) (] "]"))) (; ";")) (if_statement "if ((uVar6 & 0x4000) == 0) {\n              local_fd8 = local_fd8 + 1;\n            }\n            else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" (if "if") (parenthesized_expression "((uVar6 & 0x4000) == 0)" (( "(") (binary_expression "(uVar6 & 0x4000) == 0" (parenthesized_expression "(uVar6 & 0x4000)" (( "(") (binary_expression "uVar6 & 0x4000" (identifier "uVar6") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" ({ "{") (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" (identifier "local_fd8") (= "=") (binary_expression "local_fd8 + 1" (identifier "local_fd8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" (else "else") (compound_statement "{\n              local_fd8 = local_fd8 + 2;\n              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }\n            }" ({ "{") (expression_statement "local_fd8 = local_fd8 + 2;" (assignment_expression "local_fd8 = local_fd8 + 2" (identifier "local_fd8") (= "=") (binary_expression "local_fd8 + 2" (identifier "local_fd8") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }" (if "if") (parenthesized_expression "((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0)" (( "(") (binary_expression "(int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0" (cast_expression "(int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4]" (identifier "local_d88") ([ "[") (binary_expression "local_d88[iVar4 * 6 + 2] * 6 + 4" (binary_expression "local_d88[iVar4 * 6 + 2] * 6" (subscript_expression "local_d88[iVar4 * 6 + 2]" (identifier "local_d88") ([ "[") (binary_expression "iVar4 * 6 + 2" (binary_expression "iVar4 * 6" (identifier "iVar4") (* "*") (number_literal "6")) (+ "+") (number_literal "2")) (] "]")) (* "*") (number_literal "6")) (+ "+") (number_literal "4")) (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                uVar6 = uVar6 & 0xfffffeff | 4;\n                local_d88[iVar4 * 6 + 1] = uVar6;\n              }" ({ "{") (expression_statement "uVar6 = uVar6 & 0xfffffeff | 4;" (assignment_expression "uVar6 = uVar6 & 0xfffffeff | 4" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 0xfffffeff | 4" (binary_expression "uVar6 & 0xfffffeff" (identifier "uVar6") (& "&") (number_literal "0xfffffeff")) (| "|") (number_literal "4"))) (; ";")) (expression_statement "local_d88[iVar4 * 6 + 1] = uVar6;" (assignment_expression "local_d88[iVar4 * 6 + 1] = uVar6" (subscript_expression "local_d88[iVar4 * 6 + 1]" (identifier "local_d88") ([ "[") (binary_expression "iVar4 * 6 + 1" (binary_expression "iVar4 * 6" (identifier "iVar4") (* "*") (number_literal "6")) (+ "+") (number_literal "1")) (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((uVar6 & 0x10000) != 0) {\n              local_fd8 = local_fd8 + 1;\n            }" (if "if") (parenthesized_expression "((uVar6 & 0x10000) != 0)" (( "(") (binary_expression "(uVar6 & 0x10000) != 0" (parenthesized_expression "(uVar6 & 0x10000)" (( "(") (binary_expression "uVar6 & 0x10000" (identifier "uVar6") (& "&") (number_literal "0x10000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_fd8 = local_fd8 + 1;\n            }" ({ "{") (expression_statement "local_fd8 = local_fd8 + 1;" (assignment_expression "local_fd8 = local_fd8 + 1" (identifier "local_fd8") (= "=") (binary_expression "local_fd8 + 1" (identifier "local_fd8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (local_d88[iVar4 * 6] < 8) {\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }" (if "if") (parenthesized_expression "(local_d88[iVar4 * 6] < 8)" (( "(") (binary_expression "local_d88[iVar4 * 6] < 8" (subscript_expression "local_d88[iVar4 * 6]" (identifier "local_d88") ([ "[") (binary_expression "iVar4 * 6" (identifier "iVar4") (* "*") (number_literal "6")) (] "]")) (< "<") (number_literal "8")) () ")")) (compound_statement "{\n                    \n                    \n              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();\n              return pcVar8;\n            }" ({ "{") (expression_statement "pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();" (assignment_expression "pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" (identifier "pcVar8") (= "=") (cast_expression "(char *)(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))()" (parenthesized_expression "(*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))" (( "(") (pointer_expression "*(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" (* "*") (cast_expression "(code *)(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP))" (( "(") (binary_expression "unaff_EBP + 0x7f32a +\n                                         *(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" (binary_expression "unaff_EBP + 0x7f32a" (identifier "unaff_EBP") (+ "+") (number_literal "0x7f32a")) (+ "+") (pointer_expression "*(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" (* "*") (cast_expression "(int *)(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)" (( "(") (binary_expression "&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP" (binary_expression "&UNK_0004ec5a +\n                                                 local_d88[iVar4 * 6] * 4" (pointer_expression "&UNK_0004ec5a" (& "&") (identifier "UNK_0004ec5a")) (+ "+") (binary_expression "local_d88[iVar4 * 6] * 4" (subscript_expression "local_d88[iVar4 * 6]" (identifier "local_d88") ([ "[") (binary_expression "iVar4 * 6" (identifier "iVar4") (* "*") (number_literal "6")) (] "]")) (* "*") (number_literal "4"))) (+ "+") (identifier "unaff_EBP")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pcVar8;" (return "return") (identifier "pcVar8") (; ";")) (} "}"))) (expression_statement "pcVar8 = (char *)*local_fcc;" (assignment_expression "pcVar8 = (char *)*local_fcc" (identifier "pcVar8") (= "=") (cast_expression "(char *)*local_fcc" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_fcc" (* "*") (identifier "local_fcc")))) (; ";")) (expression_statement "local_fcc = local_fcc + 1;" (assignment_expression "local_fcc = local_fcc + 1" (identifier "local_fcc") (= "=") (binary_expression "local_fcc + 1" (identifier "local_fcc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" (else "else") (compound_statement "{\n          pcVar5 = (char *)*piVar2;\n          pcVar7 = local_fe0 + (1 - (int)pcVar8);\n          do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');\n        }" ({ "{") (expression_statement "pcVar5 = (char *)*piVar2;" (assignment_expression "pcVar5 = (char *)*piVar2" (identifier "pcVar5") (= "=") (cast_expression "(char *)*piVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (; ";")) (expression_statement "pcVar7 = local_fe0 + (1 - (int)pcVar8);" (assignment_expression "pcVar7 = local_fe0 + (1 - (int)pcVar8)" (identifier "pcVar7") (= "=") (binary_expression "local_fe0 + (1 - (int)pcVar8)" (identifier "local_fe0") (+ "+") (parenthesized_expression "(1 - (int)pcVar8)" (( "(") (binary_expression "1 - (int)pcVar8" (number_literal "1") (- "-") (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8"))) () ")")))) (; ";")) (do_statement "do {\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          } while (cVar1 != '\0');" (do "do") (compound_statement "{\n            cVar1 = *pcVar8;\n            local_fe0 = pcVar8 + (int)pcVar7;\n            pcVar8 = pcVar8 + 1;\n            *pcVar5 = cVar1;\n            pcVar5 = (char *)(*piVar2 + 1);\n            *piVar2 = (int)pcVar5;\n            cVar1 = *pcVar8;\n            if (cVar1 == '%') break;\n          }" ({ "{") (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "local_fe0 = pcVar8 + (int)pcVar7;" (assignment_expression "local_fe0 = pcVar8 + (int)pcVar7" (identifier "local_fe0") (= "=") (binary_expression "pcVar8 + (int)pcVar7" (identifier "pcVar8") (+ "+") (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7")))) (; ";")) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar5 = cVar1;" (assignment_expression "*pcVar5 = cVar1" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (= "=") (identifier "cVar1")) (; ";")) (expression_statement "pcVar5 = (char *)(*piVar2 + 1);" (assignment_expression "pcVar5 = (char *)(*piVar2 + 1)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(*piVar2 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar2 + 1)" (( "(") (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*piVar2 = (int)pcVar5;" (assignment_expression "*piVar2 = (int)pcVar5" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (if_statement "if (cVar1 == '%') break;" (if "if") (parenthesized_expression "(cVar1 == '%')" (( "(") (binary_expression "cVar1 == '%'" (identifier "cVar1") (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    local_fe0 = (char *)0xffffffff;\n  }" (else "else") (compound_statement "{\n    local_fe0 = (char *)0xffffffff;\n  }" ({ "{") (expression_statement "local_fe0 = (char *)0xffffffff;" (assignment_expression "local_fe0 = (char *)0xffffffff" (identifier "local_fe0") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_fe0;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return local_fe0;\n  }" ({ "{") (return_statement "return local_fe0;" (return "return") (identifier "local_fe0") (; ";")) (} "}"))) (expression_statement "FUN_00082f60();" (call_expression "FUN_00082f60()" (identifier "FUN_00082f60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

int __regparm3
function_1(void *data,type_1 *var_6,char *format,type_2 ap_save)

{
  type_3 bVar1;
  type_4 var_4;
  int var_3;
  int var_8;
  int var_13;
  type_3 *pbVar6;
  type_5 var_9;
  type_1 *p_Var8;
  int var_1;
  type_1 *var_5;
  int var_10;
  char **var_12;
  char *endpos [128];
  type_6 vto [128];
  char formatbuf [32];
  char work [326];
  
  var_12 = endpos;
  var_13 = *(int *)(var_1 + 0x14);
  var_3 = var_2((char *)var_6,vto,var_12,format);
  if (var_3 == 0) {
    var_4 = *var_6;
    if (var_4 == (type_4)0x0) {
      var_5 = (type_1 *)0x0;
    }
    else {
      var_10 = 0;
      var_5 = (type_1 *)0x0;
      do {
        if (var_4 == (type_4)0x25) {
          if (var_6[1] == (type_1)0x25) {
                    /* WARNING: Load size is inaccurate */
            var_5 = var_5 + 1;
            var_6 = var_6 + 2;
            **data = 0x25;
                    /* WARNING: Load size is inaccurate */
            *(int *)data = *data + 1;
            var_4 = *var_6;
          }
          else {
            var_3 = 0;
            while( true ) {
              var_6 = var_6 + 1;
              var_8 = var_7((type_5)(type_3)*var_6);
              if (var_8 == 0) break;
              var_3 = (char)*var_6 + -0x30 + var_3 * 10;
            }
            var_8 = var_10;
            if ((var_3 != 0) && (var_8 = var_3 + -1, *var_6 != (type_1)0x24)) {
              var_8 = var_10;
            }
            var_9 = vto[var_8].flags;
            if ((var_9 & 0x4000) == 0) {
              var_10 = var_10 + 1;
            }
            else {
              var_10 = var_10 + 2;
              if ((int)vto[vto[var_8].width].data.str < 0) {
                var_9 = var_9 & 0xfffffeff | 4;
                vto[var_8].flags = var_9;
              }
            }
            if ((var_9 & 0x10000) != 0) {
              var_10 = var_10 + 1;
            }
            if (vto[var_8].type < var_11) {
                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              var_13 = (*(type_4 *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                *(int *)(&DAT_00086110 + vto[var_8].type * 4)))();
              return var_13;
            }
            var_6 = (type_1 *)*var_12;
            var_12 = var_12 + 1;
            var_4 = *var_6;
          }
        }
        else {
                    /* WARNING: Load size is inaccurate */
          pbVar6 = *data;
          p_Var8 = var_5 + (1 - (int)var_6);
          do {
            bVar1 = (type_3)*var_6;
            var_5 = var_6 + (int)p_Var8;
            var_6 = var_6 + 1;
            *pbVar6 = bVar1;
                    /* WARNING: Load size is inaccurate */
            pbVar6 = (type_3 *)(*data + 1);
            *(type_3 **)data = pbVar6;
            var_4 = *var_6;
            if (var_4 == (type_4)0x25) break;
          } while (var_4 != (type_4)0x0);
        }
      } while (var_4 != (type_4)0x0);
    }
  }
  else {
    var_5 = (type_1 *)0xffffffff;
  }
  if (var_13 == *(int *)(var_1 + 0x14)) {
    return (int)var_5;
  }
                    /* WARNING: Subroutine does not return */
  var_14();
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (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 (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) (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: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) 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: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) 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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (identifier)))))))))) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (break_statement))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

char * MASKED(void)

{
  char cVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  undefined4 extraout_ECX;
  char *pcVar5;
  uint uVar6;
  int unaff_EBP;
  char *pcVar7;
  char *pcVar8;
  int in_GS_OFFSET;
  undefined8 uVar9;
  char *local_fe0;
  int local_fd8;
  undefined4 *local_fcc;
  undefined4 local_f88 [128];
  uint local_d88 [858];
  int local_20;
  
  uVar9 = FUN_0001ab8b();
  pcVar8 = (char *)((ulonglong)uVar9 >> 0x20);
  piVar2 = (int *)uVar9;
  local_fcc = local_f88;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar3 = FUN_00035bb0(extraout_ECX);
  if (iVar3 == 0) {
    cVar1 = *pcVar8;
    if (cVar1 == '\0') {
      local_fe0 = (char *)0x0;
    }
    else {
      local_fd8 = 0;
      local_fe0 = (char *)0x0;
      do {
        if (cVar1 == '%') {
          if (pcVar8[1] == '%') {
            local_fe0 = local_fe0 + 1;
            pcVar8 = pcVar8 + 2;
            *(undefined1 *)*piVar2 = 0x25;
            *piVar2 = *piVar2 + 1;
            cVar1 = *pcVar8;
          }
          else {
            iVar3 = 0;
            while( true ) {
              pcVar8 = pcVar8 + 1;
              iVar4 = FUN_000732f0(*pcVar8);
              if (iVar4 == 0) break;
              iVar3 = *pcVar8 + -0x30 + iVar3 * 10;
            }
            iVar4 = local_fd8;
            if ((iVar3 != 0) && (iVar4 = iVar3 + -1, *pcVar8 != '$')) {
              iVar4 = local_fd8;
            }
            uVar6 = local_d88[iVar4 * 6 + 1];
            if ((uVar6 & 0x4000) == 0) {
              local_fd8 = local_fd8 + 1;
            }
            else {
              local_fd8 = local_fd8 + 2;
              if ((int)local_d88[local_d88[iVar4 * 6 + 2] * 6 + 4] < 0) {
                uVar6 = uVar6 & 0xfffffeff | 4;
                local_d88[iVar4 * 6 + 1] = uVar6;
              }
            }
            if ((uVar6 & 0x10000) != 0) {
              local_fd8 = local_fd8 + 1;
            }
            if (local_d88[iVar4 * 6] < 8) {
                    /* WARNING: Could not recover jumptable at 0x0003761b. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pcVar8 = (char *)(*(code *)(unaff_EBP + 0x7f32a +
                                         *(int *)(&UNK_0004ec5a +
                                                 local_d88[iVar4 * 6] * 4 + unaff_EBP)))();
              return pcVar8;
            }
            pcVar8 = (char *)*local_fcc;
            local_fcc = local_fcc + 1;
            cVar1 = *pcVar8;
          }
        }
        else {
          pcVar5 = (char *)*piVar2;
          pcVar7 = local_fe0 + (1 - (int)pcVar8);
          do {
            cVar1 = *pcVar8;
            local_fe0 = pcVar8 + (int)pcVar7;
            pcVar8 = pcVar8 + 1;
            *pcVar5 = cVar1;
            pcVar5 = (char *)(*piVar2 + 1);
            *piVar2 = (int)pcVar5;
            cVar1 = *pcVar8;
            if (cVar1 == '%') break;
          } while (cVar1 != '\0');
        }
      } while (cVar1 != '\0');
    }
  }
  else {
    local_fe0 = (char *)0xffffffff;
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_fe0;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00082f60();
}

