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

ParameterError file2string(char **bufp,FILE *file)

{
  char *pcVar1;
  int iVar2;
  char *pcVar3;
  uint uVar4;
  uint uVar5;
  FILE *pFVar6;
  ParameterError PVar7;
  int iVar8;
  char *pcVar9;
  char *pcVar10;
  undefined4 *puVar11;
  uint *puVar12;
  uint *puVar13;
  undefined4 *puVar14;
  int in_GS_OFFSET;
  bool bVar15;
  byte bVar16;
  FILE *local_13c;
  FILE *local_134;
  char acStack_126 [6];
  char buffer [256];
  
  bVar16 = 0;
  local_134 = file;
  iVar2 = *(int *)(in_GS_OFFSET + 0x14);
  if (file != (FILE *)0x0) {
    local_13c = (FILE *)0x0;
    pcVar9 = (char *)0x0;
    while (pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0) {
      pcVar3 = strchr(buffer,0xd);
      if (pcVar3 != (char *)0x0) {
        *pcVar3 = '\0';
      }
      pcVar3 = strchr(buffer,10);
      puVar13 = (uint *)buffer;
      if (pcVar3 != (char *)0x0) {
        *pcVar3 = '\0';
      }
      do {
        puVar12 = puVar13;
        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;
        uVar5 = uVar4 & 0x80808080;
        puVar13 = puVar12 + 1;
      } while (uVar5 == 0);
      bVar15 = (uVar4 & 0x8080) == 0;
      if (bVar15) {
        uVar5 = uVar5 >> 0x10;
      }
      if (bVar15) {
        puVar13 = (uint *)((int)puVar12 + 6);
      }
      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;
      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));
      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));
      if (pFVar6 == (FILE *)0x0) {
        free(local_13c);
        PVar7 = PARAM_NO_MEM;
        goto LAB_00023e0b;
      }
      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);
      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);
      pcVar9 = pcVar3;
      local_13c = pFVar6;
      if (pcVar1 < (char *)0x4) {
        if (pcVar1 != (char *)0x0) {
          *pcVar10 = buffer[0];
          if (((uint)pcVar1 & 2) != 0) {
            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =
                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));
          }
        }
      }
      else {
        *(undefined4 *)pcVar10 = buffer._0_4_;
        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =
             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));
        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);
        puVar11 = (undefined4 *)((int)buffer - iVar8);
        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);
        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
          *puVar14 = *puVar11;
          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;
          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;
        }
      }
    }
    local_134 = local_13c;
  }
  *bufp = (char *)local_134;
  PVar7 = PARAM_OK;
LAB_00023e0b:
  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return PVar7;
}



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

undefined4 FUN_00023cb0(undefined4 *param_1,FILE *param_2)

{
  char *pcVar1;
  char *pcVar2;
  uint uVar3;
  uint uVar4;
  FILE *pFVar5;
  undefined4 uVar6;
  int iVar7;
  char *pcVar8;
  char *pcVar9;
  undefined4 *puVar10;
  uint *puVar11;
  uint *puVar12;
  undefined4 *puVar13;
  int in_GS_OFFSET;
  bool bVar14;
  byte bVar15;
  FILE *local_13c;
  FILE *local_134;
  char acStack_126 [6];
  uint local_120 [64];
  int local_20;
  undefined4 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0x23cb9;
  local_134 = param_2;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 != (FILE *)0x0) {
    local_13c = (FILE *)0x0;
    pcVar8 = (char *)0x0;
    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {
      pcVar2 = strchr((char *)local_120,0xd);
      if (pcVar2 != (char *)0x0) {
        *pcVar2 = '\0';
      }
      pcVar2 = strchr((char *)local_120,10);
      puVar12 = local_120;
      if (pcVar2 != (char *)0x0) {
        *pcVar2 = '\0';
      }
      do {
        puVar11 = puVar12;
        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;
        uVar4 = uVar3 & 0x80808080;
        puVar12 = puVar11 + 1;
      } while (uVar4 == 0);
      bVar14 = (uVar3 & 0x8080) == 0;
      if (bVar14) {
        uVar4 = uVar4 >> 0x10;
      }
      if (bVar14) {
        puVar12 = (uint *)((int)puVar11 + 6);
      }
      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;
      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));
      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));
      if (pFVar5 == (FILE *)0x0) {
        free(local_13c);
        uVar6 = 0xe;
        goto LAB_00023e0b;
      }
      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);
      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);
      pcVar8 = pcVar2;
      local_13c = pFVar5;
      if (pcVar1 < (char *)0x4) {
        if (pcVar1 != (char *)0x0) {
          *pcVar9 = (char)local_120[0];
          if (((uint)pcVar1 & 2) != 0) {
            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =
                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));
          }
        }
      }
      else {
        *(uint *)pcVar9 = local_120[0];
        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =
             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));
        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);
        puVar10 = (undefined4 *)((int)local_120 - iVar7);
        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);
        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
          *puVar13 = *puVar10;
          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;
          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;
        }
      }
    }
    local_134 = local_13c;
  }
  *param_1 = local_134;
  uVar6 = 0;
LAB_00023e0b:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00028220();
  }
  return uVar6;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00014a30
ADD EBX,0x260ff
SUB ESP,0x12c
MOV EAX,dword ptr [ESP + 0x140]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x144]
MOV dword ptr [ESP + 0x8],EAX
MOV ECX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x11c],ECX
XOR ECX,ECX
TEST EAX,EAX
JZ 0x00023dff
MOV dword ptr [ESP],0x0
XOR ESI,ESI
LEA EBP,[ESP + 0x1c]
SUB ESP,0x4
PUSH dword ptr [ESP + 0xc]
PUSH 0x100
PUSH EBP
CALL 0x00014190
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023df8
SUB ESP,0x8
PUSH 0xd
PUSH EBP
CALL 0x00014370
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023d32
MOV byte ptr [EAX],0x0
SUB ESP,0x8
PUSH 0xa
PUSH EBP
CALL 0x00014370
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023d47
MOV byte ptr [EAX],0x0
MOV EDI,EBP
MOV EDX,dword ptr [EDI]
ADD EDI,0x4
LEA EAX,[EDX + 0xfefefeff]
NOT EDX
AND EAX,EDX
AND EAX,0x80808080
JZ 0x00023d49
MOV EDX,EAX
SHR EDX,0x10
TEST EAX,0x8080
CMOVZ EAX,EDX
LEA EDX,[EDI + 0x2]
CMOVZ EDI,EDX
MOV ECX,EAX
ADD CL,AL
SBB EDI,0x3
SUB ESP,0x8
SUB EDI,EBP
LEA EAX,[ESI + EDI*0x1]
MOV dword ptr [ESP + 0xc],EAX
ADD EAX,0x1
PUSH EAX
PUSH dword ptr [ESP + 0xc]
CALL 0x00014770
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023e30
LEA EDX,[EDI + 0x1]
ADD ESI,EAX
CMP EDX,0x4
JNC 0x00023dd0
TEST EDX,EDX
JZ 0x00023dba
MOVZX ECX,byte ptr [EBP]
MOV byte ptr [ESI],CL
TEST DL,0x2
JNZ 0x00023e50
MOV ESI,dword ptr [ESP + 0x4]
MOV dword ptr [ESP],EAX
JMP 0x00023d00
MOV ECX,dword ptr [EBP]
LEA EDI,[ESI + 0x4]
AND EDI,0xfffffffc
MOV dword ptr [ESI],ECX
MOV ECX,dword ptr [EBP + EDX*0x1 + -0x4]
MOV dword ptr [ESI + EDX*0x1 + -0x4],ECX
MOV ECX,ESI
MOV ESI,EBP
SUB ECX,EDI
SUB ESI,ECX
ADD ECX,EDX
SHR ECX,0x2
MOVSD.REP ES:EDI,ESI
JMP 0x00023dba
MOV EAX,dword ptr [ESP]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV EBX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX],EBX
XOR EAX,EAX
MOV EBX,dword ptr [ESP + 0x11c]
XOR EBX,dword ptr GS:[0x14]
JNZ 0x00023e5f
ADD ESP,0x12c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0xc]
CALL 0x000144b0
ADD ESP,0x10
MOV EAX,0xe
JMP 0x00023e0b
MOVZX ECX,word ptr [EBP + EDX*0x1 + -0x2]
MOV word ptr [ESI + EDX*0x1 + -0x2],CX
JMP 0x00023dba
CALL 0x00028220
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00023cb0(undefined4 *param_1,FILE *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00028220();\n  }\n  return uVar6;\n}\n\n" comment (function_definition "undefined4 FUN_00023cb0(undefined4 *param_1,FILE *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00028220();\n  }\n  return uVar6;\n}" type_identifier (function_declarator "FUN_00023cb0(undefined4 *param_1,FILE *param_2)" identifier (parameter_list "(undefined4 *param_1,FILE *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "FILE *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00028220();\n  }\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "FILE *pFVar5;" type_identifier (pointer_declarator "*pFVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "FILE *local_13c;" type_identifier (pointer_declarator "*local_13c" * identifier) ;) (declaration "FILE *local_134;" type_identifier (pointer_declarator "*local_134" * identifier) ;) (declaration "char acStack_126 [6];" primitive_type (array_declarator "acStack_126 [6]" identifier [ number_literal ]) ;) (declaration "uint local_120 [64];" type_identifier (array_declarator "local_120 [64]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x23cb9;" (assignment_expression "uStack_14 = 0x23cb9" identifier = number_literal) ;) (expression_statement "local_134 = param_2;" (assignment_expression "local_134 = param_2" 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) ))))) ;) (if_statement "if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" if (parenthesized_expression "(param_2 != (FILE *)0x0)" ( (binary_expression "param_2 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" { (expression_statement "local_13c = (FILE *)0x0;" (assignment_expression "local_13c = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = (char *)0x0;" (assignment_expression "pcVar8 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }" while (parenthesized_expression "(pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0)" ( (comma_expression "pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0" (assignment_expression "pcVar2 = fgets((char *)local_120,0x100,param_2)" identifier = (call_expression "fgets((char *)local_120,0x100,param_2)" identifier (argument_list "((char *)local_120,0x100,param_2)" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier )))) , (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }" { (expression_statement "pcVar2 = strchr((char *)local_120,0xd);" (assignment_expression "pcVar2 = strchr((char *)local_120,0xd)" identifier = (call_expression "strchr((char *)local_120,0xd)" identifier (argument_list "((char *)local_120,0xd)" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pcVar2 = '\0';\n      }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar2 = strchr((char *)local_120,10);" (assignment_expression "pcVar2 = strchr((char *)local_120,10)" identifier = (call_expression "strchr((char *)local_120,10)" identifier (argument_list "((char *)local_120,10)" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "puVar12 = local_120;" (assignment_expression "puVar12 = local_120" identifier = identifier) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pcVar2 = '\0';\n      }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (do_statement "do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);" do (compound_statement "{\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      }" { (expression_statement "puVar11 = puVar12;" (assignment_expression "puVar11 = puVar12" identifier = identifier) ;) (expression_statement "uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;" (assignment_expression "uVar3 = *puVar11 + 0xfefefeff & ~*puVar11" identifier = (binary_expression "*puVar11 + 0xfefefeff & ~*puVar11" (binary_expression "*puVar11 + 0xfefefeff" (pointer_expression "*puVar11" * identifier) + number_literal) & (unary_expression "~*puVar11" ~ (pointer_expression "*puVar11" * identifier)))) ;) (expression_statement "uVar4 = uVar3 & 0x80808080;" (assignment_expression "uVar4 = uVar3 & 0x80808080" identifier = (binary_expression "uVar3 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar12 = puVar11 + 1;" (assignment_expression "puVar12 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) ;) (expression_statement "bVar14 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar14 = (uVar3 & 0x8080) == 0" identifier = (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" ( (binary_expression "uVar3 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n        uVar4 = uVar4 >> 0x10;\n      }" { (expression_statement "uVar4 = uVar4 >> 0x10;" (assignment_expression "uVar4 = uVar4 >> 0x10" identifier = (binary_expression "uVar4 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }" { (expression_statement "puVar12 = (uint *)((int)puVar11 + 6);" (assignment_expression "puVar12 = (uint *)((int)puVar11 + 6)" identifier = (cast_expression "(uint *)((int)puVar11 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;" (assignment_expression "iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120" identifier = (binary_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar4,(byte)uVar4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar4,(byte)uVar4)" identifier (argument_list "((byte)uVar4,(byte)uVar4)" ( (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_120" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));" (assignment_expression "pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7))" identifier = (cast_expression "(char *)((int)puVar12 + (int)(pcVar8 + iVar7))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + (int)(pcVar8 + iVar7))" ( (binary_expression "(int)puVar12 + (int)(pcVar8 + iVar7)" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar8 + iVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar8 + iVar7)" ( (binary_expression "pcVar8 + iVar7" identifier + identifier) )))) )))) ;) (expression_statement "pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));" (assignment_expression "pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1))" identifier = (cast_expression "(FILE *)realloc(local_13c,(size_t)(pcVar2 + 1))" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "realloc(local_13c,(size_t)(pcVar2 + 1))" identifier (argument_list "(local_13c,(size_t)(pcVar2 + 1))" ( identifier , (cast_expression "(size_t)(pcVar2 + 1)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pcVar2 + 1)" ( (binary_expression "pcVar2 + 1" identifier + number_literal) ))) ))))) ;) (if_statement "if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }" if (parenthesized_expression "(pFVar5 == (FILE *)0x0)" ( (binary_expression "pFVar5 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }" { (expression_statement "free(local_13c);" (call_expression "free(local_13c)" identifier (argument_list "(local_13c)" ( identifier ))) ;) (expression_statement "uVar6 = 0xe;" (assignment_expression "uVar6 = 0xe" identifier = number_literal) ;) (goto_statement "goto LAB_00023e0b;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)((int)puVar12 + iVar7 + 1);" (assignment_expression "pcVar1 = (char *)((int)puVar12 + iVar7 + 1)" identifier = (cast_expression "(char *)((int)puVar12 + iVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + iVar7 + 1)" ( (binary_expression "(int)puVar12 + iVar7 + 1" (binary_expression "(int)puVar12 + iVar7" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);" (assignment_expression "pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47)" identifier = (binary_expression "pFVar5->_shortbuf + (int)(pcVar8 + -0x47)" (field_expression "pFVar5->_shortbuf" identifier -> field_identifier) + (cast_expression "(int)(pcVar8 + -0x47)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar8 + -0x47)" ( (binary_expression "pcVar8 + -0x47" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar2;" (assignment_expression "pcVar8 = pcVar2" identifier = identifier) ;) (expression_statement "local_13c = pFVar5;" (assignment_expression "local_13c = pFVar5" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }" { (if_statement "if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" { (expression_statement "*pcVar9 = (char)local_120[0];" (assignment_expression "*pcVar9 = (char)local_120[0]" (pointer_expression "*pcVar9" * identifier) = (cast_expression "(char)local_120[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_120[0]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" { (expression_statement "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));" (assignment_expression "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" (pointer_expression "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)(pcVar9 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + (int)(pcVar1 + -2))" ( (binary_expression "pcVar9 + (int)(pcVar1 + -2)" identifier + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" * (cast_expression "(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 4))" ( (binary_expression "acStack_126 + (int)(pcVar1 + 4)" identifier + (cast_expression "(int)(pcVar1 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" else (compound_statement "{\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" { (expression_statement "*(uint *)pcVar9 = local_120[0];" (assignment_expression "*(uint *)pcVar9 = local_120[0]" (pointer_expression "*(uint *)pcVar9" * (cast_expression "(uint *)pcVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "local_120[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));" (assignment_expression "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" (pointer_expression "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)(pcVar9 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + (int)(pcVar1 + -4))" ( (binary_expression "pcVar9 + (int)(pcVar1 + -4)" identifier + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" * (cast_expression "(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 2))" ( (binary_expression "acStack_126 + (int)(pcVar1 + 2)" identifier + (cast_expression "(int)(pcVar1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 2)" ( (binary_expression "pcVar1 + 2" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);" (assignment_expression "iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc)" identifier = (binary_expression "(int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc)" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(pcVar9 + 4) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(pcVar9 + 4) & 0xfffffffc)" ( (binary_expression "(uint)(pcVar9 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar9 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)((int)local_120 - iVar7);" (assignment_expression "puVar10 = (undefined4 *)((int)local_120 - iVar7)" identifier = (cast_expression "(undefined4 *)((int)local_120 - iVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_120 - iVar7)" ( (binary_expression "(int)local_120 - iVar7" (cast_expression "(int)local_120" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);" (assignment_expression "puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(pcVar9 + 4) & 0xfffffffc)" ( (binary_expression "(uint)(pcVar9 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar9 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }" for ( (assignment_expression "uVar4 = (uint)(pcVar1 + iVar7) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar7) >> 2" (call_expression "(uint)(pcVar1 + iVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar7)" ( (binary_expression "pcVar1 + iVar7" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar4 != 0" identifier != number_literal) ; (assignment_expression "uVar4 = uVar4 - 1" identifier = (binary_expression "uVar4 - 1" identifier - number_literal)) ) (compound_statement "{\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }" { (expression_statement "*puVar13 = *puVar10;" (assignment_expression "*puVar13 = *puVar10" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar15 * -2 + 1" (binary_expression "puVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar13 = puVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar13 + (uint)bVar15 * -2 + 1" (binary_expression "puVar13 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) })) (expression_statement "local_134 = local_13c;" (assignment_expression "local_134 = local_13c" identifier = identifier) ;) })) (expression_statement "*param_1 = local_134;" (assignment_expression "*param_1 = local_134" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00028220();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00028220();\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                    /* WARNING: Subroutine does not return */\n    FUN_00028220();\n  }" { comment (expression_statement "FUN_00028220();" (call_expression "FUN_00028220()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nParameterError file2string(char **bufp,FILE *file)\n\n{\n  char *pcVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  FILE *pFVar6;\n  ParameterError PVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined4 *puVar11;\n  uint *puVar12;\n  uint *puVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  byte bVar16;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  char buffer [256];\n  \n  bVar16 = 0;\n  local_134 = file;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (file != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar9 = (char *)0x0;\n    while (pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0) {\n      pcVar3 = strchr(buffer,0xd);\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      pcVar3 = strchr(buffer,10);\n      puVar13 = (uint *)buffer;\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);\n      bVar15 = (uVar4 & 0x8080) == 0;\n      if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }\n      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;\n      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));\n      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));\n      if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);\n      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);\n      pcVar9 = pcVar3;\n      local_13c = pFVar6;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *bufp = (char *)local_134;\n  PVar7 = PARAM_OK;\nLAB_00023e0b:\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return PVar7;\n}\n\n" comment (function_definition "ParameterError file2string(char **bufp,FILE *file)\n\n{\n  char *pcVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  FILE *pFVar6;\n  ParameterError PVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined4 *puVar11;\n  uint *puVar12;\n  uint *puVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  byte bVar16;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  char buffer [256];\n  \n  bVar16 = 0;\n  local_134 = file;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (file != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar9 = (char *)0x0;\n    while (pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0) {\n      pcVar3 = strchr(buffer,0xd);\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      pcVar3 = strchr(buffer,10);\n      puVar13 = (uint *)buffer;\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);\n      bVar15 = (uVar4 & 0x8080) == 0;\n      if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }\n      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;\n      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));\n      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));\n      if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);\n      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);\n      pcVar9 = pcVar3;\n      local_13c = pFVar6;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *bufp = (char *)local_134;\n  PVar7 = PARAM_OK;\nLAB_00023e0b:\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return PVar7;\n}" type_identifier (function_declarator "file2string(char **bufp,FILE *file)" identifier (parameter_list "(char **bufp,FILE *file)" ( (parameter_declaration "char **bufp" primitive_type (pointer_declarator "**bufp" * (pointer_declarator "*bufp" * identifier))) , (parameter_declaration "FILE *file" type_identifier (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  FILE *pFVar6;\n  ParameterError PVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined4 *puVar11;\n  uint *puVar12;\n  uint *puVar13;\n  undefined4 *puVar14;\n  int in_GS_OFFSET;\n  bool bVar15;\n  byte bVar16;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  char buffer [256];\n  \n  bVar16 = 0;\n  local_134 = file;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (file != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar9 = (char *)0x0;\n    while (pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0) {\n      pcVar3 = strchr(buffer,0xd);\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      pcVar3 = strchr(buffer,10);\n      puVar13 = (uint *)buffer;\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);\n      bVar15 = (uVar4 & 0x8080) == 0;\n      if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }\n      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;\n      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));\n      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));\n      if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);\n      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);\n      pcVar9 = pcVar3;\n      local_13c = pFVar6;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *bufp = (char *)local_134;\n  PVar7 = PARAM_OK;\nLAB_00023e0b:\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return PVar7;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "FILE *pFVar6;" type_identifier (pointer_declarator "*pFVar6" * identifier) ;) (declaration "ParameterError PVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "FILE *local_13c;" type_identifier (pointer_declarator "*local_13c" * identifier) ;) (declaration "FILE *local_134;" type_identifier (pointer_declarator "*local_134" * identifier) ;) (declaration "char acStack_126 [6];" primitive_type (array_declarator "acStack_126 [6]" identifier [ number_literal ]) ;) (declaration "char buffer [256];" primitive_type (array_declarator "buffer [256]" identifier [ number_literal ]) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "local_134 = file;" (assignment_expression "local_134 = file" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(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) ))))) ;) (if_statement "if (file != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar9 = (char *)0x0;\n    while (pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0) {\n      pcVar3 = strchr(buffer,0xd);\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      pcVar3 = strchr(buffer,10);\n      puVar13 = (uint *)buffer;\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);\n      bVar15 = (uVar4 & 0x8080) == 0;\n      if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }\n      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;\n      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));\n      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));\n      if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);\n      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);\n      pcVar9 = pcVar3;\n      local_13c = pFVar6;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" if (parenthesized_expression "(file != (FILE *)0x0)" ( (binary_expression "file != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_13c = (FILE *)0x0;\n    pcVar9 = (char *)0x0;\n    while (pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0) {\n      pcVar3 = strchr(buffer,0xd);\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      pcVar3 = strchr(buffer,10);\n      puVar13 = (uint *)buffer;\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);\n      bVar15 = (uVar4 & 0x8080) == 0;\n      if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }\n      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;\n      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));\n      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));\n      if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);\n      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);\n      pcVar9 = pcVar3;\n      local_13c = pFVar6;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" { (expression_statement "local_13c = (FILE *)0x0;" (assignment_expression "local_13c = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0) {\n      pcVar3 = strchr(buffer,0xd);\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      pcVar3 = strchr(buffer,10);\n      puVar13 = (uint *)buffer;\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);\n      bVar15 = (uVar4 & 0x8080) == 0;\n      if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }\n      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;\n      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));\n      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));\n      if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);\n      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);\n      pcVar9 = pcVar3;\n      local_13c = pFVar6;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }\n    }" while (parenthesized_expression "(pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0)" ( (comma_expression "pcVar3 = fgets(buffer,0x100,(FILE *)file), pcVar3 != (char *)0x0" (assignment_expression "pcVar3 = fgets(buffer,0x100,(FILE *)file)" identifier = (call_expression "fgets(buffer,0x100,(FILE *)file)" identifier (argument_list "(buffer,0x100,(FILE *)file)" ( identifier , number_literal , (cast_expression "(FILE *)file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      pcVar3 = strchr(buffer,0xd);\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      pcVar3 = strchr(buffer,10);\n      puVar13 = (uint *)buffer;\n      if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }\n      do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);\n      bVar15 = (uVar4 & 0x8080) == 0;\n      if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }\n      if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }\n      iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;\n      pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));\n      pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));\n      if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar13 + iVar8 + 1);\n      pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);\n      pcVar9 = pcVar3;\n      local_13c = pFVar6;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }\n    }" { (expression_statement "pcVar3 = strchr(buffer,0xd);" (assignment_expression "pcVar3 = strchr(buffer,0xd)" identifier = (call_expression "strchr(buffer,0xd)" identifier (argument_list "(buffer,0xd)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pcVar3 = '\0';\n      }" { (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar3 = strchr(buffer,10);" (assignment_expression "pcVar3 = strchr(buffer,10)" identifier = (call_expression "strchr(buffer,10)" identifier (argument_list "(buffer,10)" ( identifier , number_literal )))) ;) (expression_statement "puVar13 = (uint *)buffer;" (assignment_expression "puVar13 = (uint *)buffer" identifier = (cast_expression "(uint *)buffer" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n        *pcVar3 = '\0';\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pcVar3 = '\0';\n      }" { (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (do_statement "do {\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      } while (uVar5 == 0);" do (compound_statement "{\n        puVar12 = puVar13;\n        uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;\n        uVar5 = uVar4 & 0x80808080;\n        puVar13 = puVar12 + 1;\n      }" { (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (expression_statement "uVar4 = *puVar12 + 0xfefefeff & ~*puVar12;" (assignment_expression "uVar4 = *puVar12 + 0xfefefeff & ~*puVar12" identifier = (binary_expression "*puVar12 + 0xfefefeff & ~*puVar12" (binary_expression "*puVar12 + 0xfefefeff" (pointer_expression "*puVar12" * identifier) + number_literal) & (unary_expression "~*puVar12" ~ (pointer_expression "*puVar12" * identifier)))) ;) (expression_statement "uVar5 = uVar4 & 0x80808080;" (assignment_expression "uVar5 = uVar4 & 0x80808080" identifier = (binary_expression "uVar4 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar13 = puVar12 + 1;" (assignment_expression "puVar13 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) ;) (expression_statement "bVar15 = (uVar4 & 0x8080) == 0;" (assignment_expression "bVar15 = (uVar4 & 0x8080) == 0" identifier = (binary_expression "(uVar4 & 0x8080) == 0" (parenthesized_expression "(uVar4 & 0x8080)" ( (binary_expression "uVar4 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar15) {\n        uVar5 = uVar5 >> 0x10;\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        uVar5 = uVar5 >> 0x10;\n      }" { (expression_statement "uVar5 = uVar5 >> 0x10;" (assignment_expression "uVar5 = uVar5 >> 0x10" identifier = (binary_expression "uVar5 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar15) {\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n        puVar13 = (uint *)((int)puVar12 + 6);\n      }" { (expression_statement "puVar13 = (uint *)((int)puVar12 + 6);" (assignment_expression "puVar13 = (uint *)((int)puVar12 + 6)" identifier = (cast_expression "(uint *)((int)puVar12 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 6)" ( (binary_expression "(int)puVar12 + 6" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer;" (assignment_expression "iVar8 = (-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer" identifier = (binary_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)) - (int)buffer" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar5,(byte)uVar5)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar5,(byte)uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar5,(byte)uVar5)" identifier (argument_list "((byte)uVar5,(byte)uVar5)" ( (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8));" (assignment_expression "pcVar3 = (char *)((int)puVar13 + (int)(pcVar9 + iVar8))" identifier = (cast_expression "(char *)((int)puVar13 + (int)(pcVar9 + iVar8))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + (int)(pcVar9 + iVar8))" ( (binary_expression "(int)puVar13 + (int)(pcVar9 + iVar8)" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar9 + iVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar9 + iVar8)" ( (binary_expression "pcVar9 + iVar8" identifier + identifier) )))) )))) ;) (expression_statement "pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1));" (assignment_expression "pFVar6 = (FILE *)realloc(local_13c,(size_t)(pcVar3 + 1))" identifier = (cast_expression "(FILE *)realloc(local_13c,(size_t)(pcVar3 + 1))" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "realloc(local_13c,(size_t)(pcVar3 + 1))" identifier (argument_list "(local_13c,(size_t)(pcVar3 + 1))" ( identifier , (cast_expression "(size_t)(pcVar3 + 1)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pcVar3 + 1)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) ))) ))))) ;) (if_statement "if (pFVar6 == (FILE *)0x0) {\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }" if (parenthesized_expression "(pFVar6 == (FILE *)0x0)" ( (binary_expression "pFVar6 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free(local_13c);\n        PVar7 = PARAM_NO_MEM;\n        goto LAB_00023e0b;\n      }" { (expression_statement "free(local_13c);" (call_expression "free(local_13c)" identifier (argument_list "(local_13c)" ( identifier ))) ;) (expression_statement "PVar7 = PARAM_NO_MEM;" (assignment_expression "PVar7 = PARAM_NO_MEM" identifier = identifier) ;) (goto_statement "goto LAB_00023e0b;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)((int)puVar13 + iVar8 + 1);" (assignment_expression "pcVar1 = (char *)((int)puVar13 + iVar8 + 1)" identifier = (cast_expression "(char *)((int)puVar13 + iVar8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + iVar8 + 1)" ( (binary_expression "(int)puVar13 + iVar8 + 1" (binary_expression "(int)puVar13 + iVar8" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47);" (assignment_expression "pcVar10 = pFVar6->_shortbuf + (int)(pcVar9 + -0x47)" identifier = (binary_expression "pFVar6->_shortbuf + (int)(pcVar9 + -0x47)" (field_expression "pFVar6->_shortbuf" identifier -> field_identifier) + (cast_expression "(int)(pcVar9 + -0x47)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar9 + -0x47)" ( (binary_expression "pcVar9 + -0x47" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = pcVar3;" (assignment_expression "pcVar9 = pcVar3" identifier = identifier) ;) (expression_statement "local_13c = pFVar6;" (assignment_expression "local_13c = pFVar6" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }" { (if_statement "if (pcVar1 != (char *)0x0) {\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *pcVar10 = buffer[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" { (expression_statement "*pcVar10 = buffer[0];" (assignment_expression "*pcVar10 = buffer[0]" (pointer_expression "*pcVar10" * identifier) = (subscript_expression "buffer[0]" identifier [ number_literal ])) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" { (expression_statement "*(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));" (assignment_expression "*(undefined2 *)(pcVar10 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" (pointer_expression "*(undefined2 *)(pcVar10 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)(pcVar10 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + (int)(pcVar1 + -2))" ( (binary_expression "pcVar10 + (int)(pcVar1 + -2)" identifier + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" * (cast_expression "(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 4))" ( (binary_expression "acStack_126 + (int)(pcVar1 + 4)" identifier + (cast_expression "(int)(pcVar1 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }" else (compound_statement "{\n        *(undefined4 *)pcVar10 = buffer._0_4_;\n        *(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);\n        puVar11 = (undefined4 *)((int)buffer - iVar8);\n        puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);\n        for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }\n      }" { (expression_statement "*(undefined4 *)pcVar10 = buffer._0_4_;" (assignment_expression "*(undefined4 *)pcVar10 = buffer._0_4_" (pointer_expression "*(undefined4 *)pcVar10" * (cast_expression "(undefined4 *)pcVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "buffer._0_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));" (assignment_expression "*(undefined4 *)(pcVar10 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" (pointer_expression "*(undefined4 *)(pcVar10 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)(pcVar10 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + (int)(pcVar1 + -4))" ( (binary_expression "pcVar10 + (int)(pcVar1 + -4)" identifier + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" * (cast_expression "(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 2))" ( (binary_expression "acStack_126 + (int)(pcVar1 + 2)" identifier + (cast_expression "(int)(pcVar1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 2)" ( (binary_expression "pcVar1 + 2" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc);" (assignment_expression "iVar8 = (int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc)" identifier = (binary_expression "(int)pcVar10 - (int)((uint)(pcVar10 + 4) & 0xfffffffc)" (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(pcVar10 + 4) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(pcVar10 + 4) & 0xfffffffc)" ( (binary_expression "(uint)(pcVar10 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar10 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar10 + 4)" ( (binary_expression "pcVar10 + 4" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar11 = (undefined4 *)((int)buffer - iVar8);" (assignment_expression "puVar11 = (undefined4 *)((int)buffer - iVar8)" identifier = (cast_expression "(undefined4 *)((int)buffer - iVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)buffer - iVar8)" ( (binary_expression "(int)buffer - iVar8" (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc);" (assignment_expression "puVar14 = (undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(pcVar10 + 4) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(pcVar10 + 4) & 0xfffffffc)" ( (binary_expression "(uint)(pcVar10 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar10 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar10 + 4)" ( (binary_expression "pcVar10 + 4" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar5 = (uint)(pcVar1 + iVar8) >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }" for ( (assignment_expression "uVar5 = (uint)(pcVar1 + iVar8) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar8) >> 2" (call_expression "(uint)(pcVar1 + iVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar8)" ( (binary_expression "pcVar1 + iVar8" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar5 != 0" identifier != number_literal) ; (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ) (compound_statement "{\n          *puVar14 = *puVar11;\n          puVar11 = puVar11 + (uint)bVar16 * -2 + 1;\n          puVar14 = puVar14 + (uint)bVar16 * -2 + 1;\n        }" { (expression_statement "*puVar14 = *puVar11;" (assignment_expression "*puVar14 = *puVar11" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "puVar11 = puVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "puVar11 + (uint)bVar16 * -2 + 1" (binary_expression "puVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar14 = puVar14 + (uint)bVar16 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "puVar14 + (uint)bVar16 * -2 + 1" (binary_expression "puVar14 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) })) (expression_statement "local_134 = local_13c;" (assignment_expression "local_134 = local_13c" identifier = identifier) ;) })) (expression_statement "*bufp = (char *)local_134;" (assignment_expression "*bufp = (char *)local_134" (pointer_expression "*bufp" * identifier) = (cast_expression "(char *)local_134" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "PVar7 = PARAM_OK;" (assignment_expression "PVar7 = PARAM_OK" identifier = identifier) ;) (labeled_statement "LAB_00023e0b:\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar2 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar2 != *(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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return PVar7;" return identifier ;) })))
(translation_unit "undefined4 FUN_00023cb0(undefined4 *param_1,FILE *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\n  }\n  return uVar6;\n}\n\n" (function_definition "undefined4 FUN_00023cb0(undefined4 *param_1,FILE *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\n  }\n  return uVar6;\n}" type_identifier (function_declarator "FUN_00023cb0(undefined4 *param_1,FILE *param_2)" identifier (parameter_list "(undefined4 *param_1,FILE *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "FILE *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\n  }\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "FILE *pFVar5;" type_identifier (pointer_declarator "*pFVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "FILE *local_13c;" type_identifier (pointer_declarator "*local_13c" * identifier) ;) (declaration "FILE *local_134;" type_identifier (pointer_declarator "*local_134" * identifier) ;) (declaration "char acStack_126 [6];" primitive_type (array_declarator "acStack_126 [6]" identifier [ number_literal ]) ;) (declaration "uint local_120 [64];" type_identifier (array_declarator "local_120 [64]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x23cb9;" (assignment_expression "uStack_14 = 0x23cb9" identifier = number_literal) ;) (expression_statement "local_134 = param_2;" (assignment_expression "local_134 = param_2" 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) ))))) ;) (if_statement "if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" if (parenthesized_expression "(param_2 != (FILE *)0x0)" ( (binary_expression "param_2 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" { (expression_statement "local_13c = (FILE *)0x0;" (assignment_expression "local_13c = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar8 = (char *)0x0;" (assignment_expression "pcVar8 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }" while (parenthesized_expression "(pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0)" ( (comma_expression "pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0" (assignment_expression "pcVar2 = fgets((char *)local_120,0x100,param_2)" identifier = (call_expression "fgets((char *)local_120,0x100,param_2)" identifier (argument_list "((char *)local_120,0x100,param_2)" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier )))) , (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }" { (expression_statement "pcVar2 = strchr((char *)local_120,0xd);" (assignment_expression "pcVar2 = strchr((char *)local_120,0xd)" identifier = (call_expression "strchr((char *)local_120,0xd)" identifier (argument_list "((char *)local_120,0xd)" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pcVar2 = '\0';\n      }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar2 = strchr((char *)local_120,10);" (assignment_expression "pcVar2 = strchr((char *)local_120,10)" identifier = (call_expression "strchr((char *)local_120,10)" identifier (argument_list "((char *)local_120,10)" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "puVar12 = local_120;" (assignment_expression "puVar12 = local_120" identifier = identifier) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pcVar2 = '\0';\n      }" { (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (do_statement "do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);" do (compound_statement "{\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      }" { (expression_statement "puVar11 = puVar12;" (assignment_expression "puVar11 = puVar12" identifier = identifier) ;) (expression_statement "uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;" (assignment_expression "uVar3 = *puVar11 + 0xfefefeff & ~*puVar11" identifier = (binary_expression "*puVar11 + 0xfefefeff & ~*puVar11" (binary_expression "*puVar11 + 0xfefefeff" (pointer_expression "*puVar11" * identifier) + number_literal) & (unary_expression "~*puVar11" ~ (pointer_expression "*puVar11" * identifier)))) ;) (expression_statement "uVar4 = uVar3 & 0x80808080;" (assignment_expression "uVar4 = uVar3 & 0x80808080" identifier = (binary_expression "uVar3 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar12 = puVar11 + 1;" (assignment_expression "puVar12 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) ;) (expression_statement "bVar14 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar14 = (uVar3 & 0x8080) == 0" identifier = (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" ( (binary_expression "uVar3 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n        uVar4 = uVar4 >> 0x10;\n      }" { (expression_statement "uVar4 = uVar4 >> 0x10;" (assignment_expression "uVar4 = uVar4 >> 0x10" identifier = (binary_expression "uVar4 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }" { (expression_statement "puVar12 = (uint *)((int)puVar11 + 6);" (assignment_expression "puVar12 = (uint *)((int)puVar11 + 6)" identifier = (cast_expression "(uint *)((int)puVar11 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 6)" ( (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;" (assignment_expression "iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120" identifier = (binary_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar4,(byte)uVar4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar4,(byte)uVar4)" identifier (argument_list "((byte)uVar4,(byte)uVar4)" ( (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)local_120" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));" (assignment_expression "pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7))" identifier = (cast_expression "(char *)((int)puVar12 + (int)(pcVar8 + iVar7))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + (int)(pcVar8 + iVar7))" ( (binary_expression "(int)puVar12 + (int)(pcVar8 + iVar7)" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pcVar8 + iVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar8 + iVar7)" ( (binary_expression "pcVar8 + iVar7" identifier + identifier) )))) )))) ;) (expression_statement "pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));" (assignment_expression "pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1))" identifier = (cast_expression "(FILE *)realloc(local_13c,(size_t)(pcVar2 + 1))" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "realloc(local_13c,(size_t)(pcVar2 + 1))" identifier (argument_list "(local_13c,(size_t)(pcVar2 + 1))" ( identifier , (cast_expression "(size_t)(pcVar2 + 1)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pcVar2 + 1)" ( (binary_expression "pcVar2 + 1" identifier + number_literal) ))) ))))) ;) (if_statement "if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }" if (parenthesized_expression "(pFVar5 == (FILE *)0x0)" ( (binary_expression "pFVar5 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }" { (expression_statement "free(local_13c);" (call_expression "free(local_13c)" identifier (argument_list "(local_13c)" ( identifier ))) ;) (expression_statement "uVar6 = 0xe;" (assignment_expression "uVar6 = 0xe" identifier = number_literal) ;) (goto_statement "goto LAB_00023e0b;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)((int)puVar12 + iVar7 + 1);" (assignment_expression "pcVar1 = (char *)((int)puVar12 + iVar7 + 1)" identifier = (cast_expression "(char *)((int)puVar12 + iVar7 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + iVar7 + 1)" ( (binary_expression "(int)puVar12 + iVar7 + 1" (binary_expression "(int)puVar12 + iVar7" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);" (assignment_expression "pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47)" identifier = (binary_expression "pFVar5->_shortbuf + (int)(pcVar8 + -0x47)" (field_expression "pFVar5->_shortbuf" identifier -> field_identifier) + (cast_expression "(int)(pcVar8 + -0x47)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar8 + -0x47)" ( (binary_expression "pcVar8 + -0x47" identifier + number_literal) ))))) ;) (expression_statement "pcVar8 = pcVar2;" (assignment_expression "pcVar8 = pcVar2" identifier = identifier) ;) (expression_statement "local_13c = pFVar5;" (assignment_expression "local_13c = pFVar5" identifier = identifier) ;) (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" if (parenthesized_expression "(pcVar1 < (char *)0x4)" ( (binary_expression "pcVar1 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }" { (if_statement "if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" { (expression_statement "*pcVar9 = (char)local_120[0];" (assignment_expression "*pcVar9 = (char)local_120[0]" (pointer_expression "*pcVar9" * identifier) = (cast_expression "(char)local_120[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_120[0]" identifier [ number_literal ]))) ;) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" if (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" ( (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" ( (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" { (expression_statement "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));" (assignment_expression "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" (pointer_expression "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2))" * (cast_expression "(undefined2 *)(pcVar9 + (int)(pcVar1 + -2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + (int)(pcVar1 + -2))" ( (binary_expression "pcVar9 + (int)(pcVar1 + -2)" identifier + (cast_expression "(int)(pcVar1 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -2)" ( (binary_expression "pcVar1 + -2" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" * (cast_expression "(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 4))" ( (binary_expression "acStack_126 + (int)(pcVar1 + 4)" identifier + (cast_expression "(int)(pcVar1 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) ))))) ;) })) })) }) (else_clause "else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" else (compound_statement "{\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" { (expression_statement "*(uint *)pcVar9 = local_120[0];" (assignment_expression "*(uint *)pcVar9 = local_120[0]" (pointer_expression "*(uint *)pcVar9" * (cast_expression "(uint *)pcVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "local_120[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));" (assignment_expression "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" (pointer_expression "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4))" * (cast_expression "(undefined4 *)(pcVar9 + (int)(pcVar1 + -4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + (int)(pcVar1 + -4))" ( (binary_expression "pcVar9 + (int)(pcVar1 + -4)" identifier + (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) )))) )))) = (pointer_expression "*(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" * (cast_expression "(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 2))" ( (binary_expression "acStack_126 + (int)(pcVar1 + 2)" identifier + (cast_expression "(int)(pcVar1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + 2)" ( (binary_expression "pcVar1 + 2" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);" (assignment_expression "iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc)" identifier = (binary_expression "(int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc)" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(pcVar9 + 4) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(pcVar9 + 4) & 0xfffffffc)" ( (binary_expression "(uint)(pcVar9 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar9 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) ))) & number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)((int)local_120 - iVar7);" (assignment_expression "puVar10 = (undefined4 *)((int)local_120 - iVar7)" identifier = (cast_expression "(undefined4 *)((int)local_120 - iVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_120 - iVar7)" ( (binary_expression "(int)local_120 - iVar7" (cast_expression "(int)local_120" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);" (assignment_expression "puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc)" identifier = (cast_expression "(undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(pcVar9 + 4) & 0xfffffffc)" ( (binary_expression "(uint)(pcVar9 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar9 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 + 4)" ( (binary_expression "pcVar9 + 4" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }" for ( (assignment_expression "uVar4 = (uint)(pcVar1 + iVar7) >> 2" identifier = (binary_expression "(uint)(pcVar1 + iVar7) >> 2" (call_expression "(uint)(pcVar1 + iVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + iVar7)" ( (binary_expression "pcVar1 + iVar7" identifier + identifier) ))) >> number_literal)) ; (binary_expression "uVar4 != 0" identifier != number_literal) ; (assignment_expression "uVar4 = uVar4 - 1" identifier = (binary_expression "uVar4 - 1" identifier - number_literal)) ) (compound_statement "{\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }" { (expression_statement "*puVar13 = *puVar10;" (assignment_expression "*puVar13 = *puVar10" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar10 = puVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar10 + (uint)bVar15 * -2 + 1" (binary_expression "puVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar13 = puVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar13 + (uint)bVar15 * -2 + 1" (binary_expression "puVar13 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) })) (expression_statement "local_134 = local_13c;" (assignment_expression "local_134 = local_13c" identifier = identifier) ;) })) (expression_statement "*param_1 = local_134;" (assignment_expression "*param_1 = local_134" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\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                    \n    FUN_00028220();\n  }" { (expression_statement "FUN_00028220();" (call_expression "FUN_00028220()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT , IDENT )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT -> field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) >> LIT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00023cb0(undefined4 *param_1,FILE *param_2)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\n  }\n  return uVar6;\n}" (type_identifier "undefined4") (function_declarator "FUN_00023cb0(undefined4 *param_1,FILE *param_2)" (identifier "FUN_00023cb0") (parameter_list "(undefined4 *param_1,FILE *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "FILE *param_2" (type_identifier "FILE") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  FILE *pFVar5;\n  undefined4 uVar6;\n  int iVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  int in_GS_OFFSET;\n  bool bVar14;\n  byte bVar15;\n  FILE *local_13c;\n  FILE *local_134;\n  char acStack_126 [6];\n  uint local_120 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x23cb9;\n  local_134 = param_2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }\n  *param_1 = local_134;\n  uVar6 = 0;\nLAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\n  }\n  return uVar6;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "FILE *pFVar5;" (type_identifier "FILE") (pointer_declarator "*pFVar5" (* "*") (identifier "pFVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "FILE *local_13c;" (type_identifier "FILE") (pointer_declarator "*local_13c" (* "*") (identifier "local_13c")) (; ";")) (declaration "FILE *local_134;" (type_identifier "FILE") (pointer_declarator "*local_134" (* "*") (identifier "local_134")) (; ";")) (declaration "char acStack_126 [6];" (primitive_type "char") (array_declarator "acStack_126 [6]" (identifier "acStack_126") ([ "[") (number_literal "6") (] "]")) (; ";")) (declaration "uint local_120 [64];" (type_identifier "uint") (array_declarator "local_120 [64]" (identifier "local_120") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x23cb9;" (assignment_expression "uStack_14 = 0x23cb9" (identifier "uStack_14") (= "=") (number_literal "0x23cb9")) (; ";")) (expression_statement "local_134 = param_2;" (assignment_expression "local_134 = param_2" (identifier "local_134") (= "=") (identifier "param_2")) (; ";")) (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")) () ")"))))) (; ";")) (if_statement "if (param_2 != (FILE *)0x0) {\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" (if "if") (parenthesized_expression "(param_2 != (FILE *)0x0)" (( "(") (binary_expression "param_2 != (FILE *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_13c = (FILE *)0x0;\n    pcVar8 = (char *)0x0;\n    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }\n    local_134 = local_13c;\n  }" ({ "{") (expression_statement "local_13c = (FILE *)0x0;" (assignment_expression "local_13c = (FILE *)0x0" (identifier "local_13c") (= "=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar8 = (char *)0x0;" (assignment_expression "pcVar8 = (char *)0x0" (identifier "pcVar8") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (while_statement "while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }" (while "while") (parenthesized_expression "(pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0)" (( "(") (comma_expression "pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0" (assignment_expression "pcVar2 = fgets((char *)local_120,0x100,param_2)" (identifier "pcVar2") (= "=") (call_expression "fgets((char *)local_120,0x100,param_2)" (identifier "fgets") (argument_list "((char *)local_120,0x100,param_2)" (( "(") (cast_expression "(char *)local_120" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_120")) (, ",") (number_literal "0x100") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n      pcVar2 = strchr((char *)local_120,0xd);\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      pcVar2 = strchr((char *)local_120,10);\n      puVar12 = local_120;\n      if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }\n      do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);\n      bVar14 = (uVar3 & 0x8080) == 0;\n      if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }\n      if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }\n      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;\n      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));\n      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));\n      if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }\n      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);\n      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);\n      pcVar8 = pcVar2;\n      local_13c = pFVar5;\n      if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar2 = strchr((char *)local_120,0xd);" (assignment_expression "pcVar2 = strchr((char *)local_120,0xd)" (identifier "pcVar2") (= "=") (call_expression "strchr((char *)local_120,0xd)" (identifier "strchr") (argument_list "((char *)local_120,0xd)" (( "(") (cast_expression "(char *)local_120" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_120")) (, ",") (number_literal "0xd") () ")")))) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *pcVar2 = '\0';\n      }" ({ "{") (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "pcVar2 = strchr((char *)local_120,10);" (assignment_expression "pcVar2 = strchr((char *)local_120,10)" (identifier "pcVar2") (= "=") (call_expression "strchr((char *)local_120,10)" (identifier "strchr") (argument_list "((char *)local_120,10)" (( "(") (cast_expression "(char *)local_120" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_120")) (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "puVar12 = local_120;" (assignment_expression "puVar12 = local_120" (identifier "puVar12") (= "=") (identifier "local_120")) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n        *pcVar2 = '\0';\n      }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *pcVar2 = '\0';\n      }" ({ "{") (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (do_statement "do {\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      } while (uVar4 == 0);" (do "do") (compound_statement "{\n        puVar11 = puVar12;\n        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;\n        uVar4 = uVar3 & 0x80808080;\n        puVar12 = puVar11 + 1;\n      }" ({ "{") (expression_statement "puVar11 = puVar12;" (assignment_expression "puVar11 = puVar12" (identifier "puVar11") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;" (assignment_expression "uVar3 = *puVar11 + 0xfefefeff & ~*puVar11" (identifier "uVar3") (= "=") (binary_expression "*puVar11 + 0xfefefeff & ~*puVar11" (binary_expression "*puVar11 + 0xfefefeff" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar11" (~ "~") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))))) (; ";")) (expression_statement "uVar4 = uVar3 & 0x80808080;" (assignment_expression "uVar4 = uVar3 & 0x80808080" (identifier "uVar4") (= "=") (binary_expression "uVar3 & 0x80808080" (identifier "uVar3") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar12 = puVar11 + 1;" (assignment_expression "puVar12 = puVar11 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar14 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar14 = (uVar3 & 0x8080) == 0" (identifier "bVar14") (= "=") (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" (( "(") (binary_expression "uVar3 & 0x8080" (identifier "uVar3") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar14) {\n        uVar4 = uVar4 >> 0x10;\n      }" (if "if") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (compound_statement "{\n        uVar4 = uVar4 >> 0x10;\n      }" ({ "{") (expression_statement "uVar4 = uVar4 >> 0x10;" (assignment_expression "uVar4 = uVar4 >> 0x10" (identifier "uVar4") (= "=") (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar14) {\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }" (if "if") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (compound_statement "{\n        puVar12 = (uint *)((int)puVar11 + 6);\n      }" ({ "{") (expression_statement "puVar12 = (uint *)((int)puVar11 + 6);" (assignment_expression "puVar12 = (uint *)((int)puVar11 + 6)" (identifier "puVar12") (= "=") (cast_expression "(uint *)((int)puVar11 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 6)" (( "(") (binary_expression "(int)puVar11 + 6" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;" (assignment_expression "iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120" (identifier "iVar7") (= "=") (binary_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120" (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4))" (( "(") (binary_expression "-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)" (number_literal "-3") (- "-") (cast_expression "(uint)CARRY1((byte)uVar4,(byte)uVar4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar4,(byte)uVar4)" (identifier "CARRY1") (argument_list "((byte)uVar4,(byte)uVar4)" (( "(") (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4")) (, ",") (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4")) () ")"))))) () ")")) (- "-") (cast_expression "(int)local_120" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_120")))) (; ";")) (expression_statement "pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));" (assignment_expression "pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7))" (identifier "pcVar2") (= "=") (cast_expression "(char *)((int)puVar12 + (int)(pcVar8 + iVar7))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + (int)(pcVar8 + iVar7))" (( "(") (binary_expression "(int)puVar12 + (int)(pcVar8 + iVar7)" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (cast_expression "(int)(pcVar8 + iVar7)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar8 + iVar7)" (( "(") (binary_expression "pcVar8 + iVar7" (identifier "pcVar8") (+ "+") (identifier "iVar7")) () ")")))) () ")")))) (; ";")) (expression_statement "pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));" (assignment_expression "pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1))" (identifier "pFVar5") (= "=") (cast_expression "(FILE *)realloc(local_13c,(size_t)(pcVar2 + 1))" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "realloc(local_13c,(size_t)(pcVar2 + 1))" (identifier "realloc") (argument_list "(local_13c,(size_t)(pcVar2 + 1))" (( "(") (identifier "local_13c") (, ",") (cast_expression "(size_t)(pcVar2 + 1)" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (parenthesized_expression "(pcVar2 + 1)" (( "(") (binary_expression "pcVar2 + 1" (identifier "pcVar2") (+ "+") (number_literal "1")) () ")"))) () ")"))))) (; ";")) (if_statement "if (pFVar5 == (FILE *)0x0) {\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }" (if "if") (parenthesized_expression "(pFVar5 == (FILE *)0x0)" (( "(") (binary_expression "pFVar5 == (FILE *)0x0" (identifier "pFVar5") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        free(local_13c);\n        uVar6 = 0xe;\n        goto LAB_00023e0b;\n      }" ({ "{") (expression_statement "free(local_13c);" (call_expression "free(local_13c)" (identifier "free") (argument_list "(local_13c)" (( "(") (identifier "local_13c") () ")"))) (; ";")) (expression_statement "uVar6 = 0xe;" (assignment_expression "uVar6 = 0xe" (identifier "uVar6") (= "=") (number_literal "0xe")) (; ";")) (goto_statement "goto LAB_00023e0b;" (goto "goto") (statement_identifier "LAB_00023e0b") (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)((int)puVar12 + iVar7 + 1);" (assignment_expression "pcVar1 = (char *)((int)puVar12 + iVar7 + 1)" (identifier "pcVar1") (= "=") (cast_expression "(char *)((int)puVar12 + iVar7 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + iVar7 + 1)" (( "(") (binary_expression "(int)puVar12 + iVar7 + 1" (binary_expression "(int)puVar12 + iVar7" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (identifier "iVar7")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);" (assignment_expression "pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47)" (identifier "pcVar9") (= "=") (binary_expression "pFVar5->_shortbuf + (int)(pcVar8 + -0x47)" (field_expression "pFVar5->_shortbuf" (identifier "pFVar5") (-> "->") (field_identifier "_shortbuf")) (+ "+") (cast_expression "(int)(pcVar8 + -0x47)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar8 + -0x47)" (( "(") (binary_expression "pcVar8 + -0x47" (identifier "pcVar8") (+ "+") (number_literal "-0x47")) () ")"))))) (; ";")) (expression_statement "pcVar8 = pcVar2;" (assignment_expression "pcVar8 = pcVar2" (identifier "pcVar8") (= "=") (identifier "pcVar2")) (; ";")) (expression_statement "local_13c = pFVar5;" (assignment_expression "local_13c = pFVar5" (identifier "local_13c") (= "=") (identifier "pFVar5")) (; ";")) (if_statement "if (pcVar1 < (char *)0x4) {\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }\n      else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar1 < (char *)0x4)" (( "(") (binary_expression "pcVar1 < (char *)0x4" (identifier "pcVar1") (< "<") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }\n      }" ({ "{") (if_statement "if (pcVar1 != (char *)0x0) {\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *pcVar9 = (char)local_120[0];\n          if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }\n        }" ({ "{") (expression_statement "*pcVar9 = (char)local_120[0];" (assignment_expression "*pcVar9 = (char)local_120[0]" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (cast_expression "(char)local_120[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_120[0]" (identifier "local_120") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (((uint)pcVar1 & 2) != 0) {\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" (if "if") (parenthesized_expression "(((uint)pcVar1 & 2) != 0)" (( "(") (binary_expression "((uint)pcVar1 & 2) != 0" (parenthesized_expression "((uint)pcVar1 & 2)" (( "(") (binary_expression "(uint)pcVar1 & 2" (cast_expression "(uint)pcVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));\n          }" ({ "{") (expression_statement "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));" (assignment_expression "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =\n                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" (pointer_expression "*(undefined2 *)(pcVar9 + (int)(pcVar1 + -2))" (* "*") (cast_expression "(undefined2 *)(pcVar9 + (int)(pcVar1 + -2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + (int)(pcVar1 + -2))" (( "(") (binary_expression "pcVar9 + (int)(pcVar1 + -2)" (identifier "pcVar9") (+ "+") (cast_expression "(int)(pcVar1 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -2)" (( "(") (binary_expression "pcVar1 + -2" (identifier "pcVar1") (+ "+") (number_literal "-2")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" (* "*") (cast_expression "(undefined2 *)(acStack_126 + (int)(pcVar1 + 4))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 4))" (( "(") (binary_expression "acStack_126 + (int)(pcVar1 + 4)" (identifier "acStack_126") (+ "+") (cast_expression "(int)(pcVar1 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" (else "else") (compound_statement "{\n        *(uint *)pcVar9 = local_120[0];\n        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));\n        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);\n        puVar10 = (undefined4 *)((int)local_120 - iVar7);\n        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);\n        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }\n      }" ({ "{") (expression_statement "*(uint *)pcVar9 = local_120[0];" (assignment_expression "*(uint *)pcVar9 = local_120[0]" (pointer_expression "*(uint *)pcVar9" (* "*") (cast_expression "(uint *)pcVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar9"))) (= "=") (subscript_expression "local_120[0]" (identifier "local_120") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));" (assignment_expression "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =\n             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" (pointer_expression "*(undefined4 *)(pcVar9 + (int)(pcVar1 + -4))" (* "*") (cast_expression "(undefined4 *)(pcVar9 + (int)(pcVar1 + -4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + (int)(pcVar1 + -4))" (( "(") (binary_expression "pcVar9 + (int)(pcVar1 + -4)" (identifier "pcVar9") (+ "+") (cast_expression "(int)(pcVar1 + -4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -4)" (( "(") (binary_expression "pcVar1 + -4" (identifier "pcVar1") (+ "+") (number_literal "-4")) () ")")))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" (* "*") (cast_expression "(undefined4 *)(acStack_126 + (int)(pcVar1 + 2))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(acStack_126 + (int)(pcVar1 + 2))" (( "(") (binary_expression "acStack_126 + (int)(pcVar1 + 2)" (identifier "acStack_126") (+ "+") (cast_expression "(int)(pcVar1 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + 2)" (( "(") (binary_expression "pcVar1 + 2" (identifier "pcVar1") (+ "+") (number_literal "2")) () ")")))) () ")"))))) (; ";")) (expression_statement "iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);" (assignment_expression "iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc)" (identifier "iVar7") (= "=") (binary_expression "(int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc)" (cast_expression "(int)pcVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar9")) (- "-") (cast_expression "(int)((uint)(pcVar9 + 4) & 0xfffffffc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)(pcVar9 + 4) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pcVar9 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar9 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar9 + 4)" (( "(") (binary_expression "pcVar9 + 4" (identifier "pcVar9") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")"))))) (; ";")) (expression_statement "puVar10 = (undefined4 *)((int)local_120 - iVar7);" (assignment_expression "puVar10 = (undefined4 *)((int)local_120 - iVar7)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)((int)local_120 - iVar7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_120 - iVar7)" (( "(") (binary_expression "(int)local_120 - iVar7" (cast_expression "(int)local_120" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_120")) (- "-") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);" (assignment_expression "puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(pcVar9 + 4) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pcVar9 + 4) & 0xfffffffc" (call_expression "(uint)(pcVar9 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar9 + 4)" (( "(") (binary_expression "pcVar9 + 4" (identifier "pcVar9") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (for_statement "for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "uVar4 = (uint)(pcVar1 + iVar7) >> 2" (identifier "uVar4") (= "=") (binary_expression "(uint)(pcVar1 + iVar7) >> 2" (call_expression "(uint)(pcVar1 + iVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar1 + iVar7)" (( "(") (binary_expression "pcVar1 + iVar7" (identifier "pcVar1") (+ "+") (identifier "iVar7")) () ")"))) (>> ">>") (number_literal "2"))) (; ";") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar4 = uVar4 - 1" (identifier "uVar4") (= "=") (binary_expression "uVar4 - 1" (identifier "uVar4") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n          *puVar13 = *puVar10;\n          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;\n          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar13 = *puVar10;" (assignment_expression "*puVar13 = *puVar10" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "puVar10 = puVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar10 = puVar10 + (uint)bVar15 * -2 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + (uint)bVar15 * -2 + 1" (binary_expression "puVar10 + (uint)bVar15 * -2" (identifier "puVar10") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar13 = puVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (uint)bVar15 * -2 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + (uint)bVar15 * -2 + 1" (binary_expression "puVar13 + (uint)bVar15 * -2" (identifier "puVar13") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "local_134 = local_13c;" (assignment_expression "local_134 = local_13c" (identifier "local_134") (= "=") (identifier "local_13c")) (; ";")) (} "}"))) (expression_statement "*param_1 = local_134;" (assignment_expression "*param_1 = local_134" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_134")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00023e0b:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\n  }" (statement_identifier "LAB_00023e0b") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00028220();\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                    \n    FUN_00028220();\n  }" ({ "{") (expression_statement "FUN_00028220();" (call_expression "FUN_00028220()" (identifier "FUN_00028220") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))

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

type_1 function_1(char **bufp,type_2 *var_2)

{
  char *var_15;
  int var_20;
  char *var_4;
  type_3 var_6;
  type_3 var_8;
  type_2 *var_13;
  type_1 PVar7;
  int var_11;
  char *var_10;
  char *var_16;
  type_4 *var_18;
  type_3 *var_7;
  type_3 *puVar13;
  type_4 *var_19;
  int var_1;
  bool bVar15;
  type_5 bVar16;
  type_2 *local_13c;
  type_2 *local_134;
  char var_17 [6];
  char buffer [256];
  
  bVar16 = 0;
  local_134 = var_2;
  var_20 = *(int *)(var_1 + 0x14);
  if (var_2 != (type_2 *)0x0) {
    local_13c = (type_2 *)0x0;
    var_10 = (char *)0x0;
    while (var_4 = var_3(buffer,0x100,(type_2 *)var_2), var_4 != (char *)0x0) {
      var_4 = var_5(buffer,0xd);
      if (var_4 != (char *)0x0) {
        *var_4 = '\0';
      }
      var_4 = var_5(buffer,10);
      puVar13 = (type_3 *)buffer;
      if (var_4 != (char *)0x0) {
        *var_4 = '\0';
      }
      do {
        var_7 = puVar13;
        var_6 = *var_7 + 0xfefefeff & ~*var_7;
        var_8 = var_6 & 0x80808080;
        puVar13 = var_7 + 1;
      } while (var_8 == 0);
      bVar15 = (var_6 & 0x8080) == 0;
      if (bVar15) {
        var_8 = var_8 >> 0x10;
      }
      if (bVar15) {
        puVar13 = (type_3 *)((int)var_7 + 6);
      }
      var_11 = (-3 - (type_3)var_9((type_5)var_8,(type_5)var_8)) - (int)buffer;
      var_4 = (char *)((int)puVar13 + (int)(var_10 + var_11));
      var_13 = (type_2 *)var_12(local_13c,(size_t)(var_4 + 1));
      if (var_13 == (type_2 *)0x0) {
        var_14(local_13c);
        PVar7 = PARAM_NO_MEM;
        goto LAB_00023e0b;
      }
      var_15 = (char *)((int)puVar13 + var_11 + 1);
      var_16 = var_13->_shortbuf + (int)(var_10 + -0x47);
      var_10 = var_4;
      local_13c = var_13;
      if (var_15 < (char *)0x4) {
        if (var_15 != (char *)0x0) {
          *var_16 = buffer[0];
          if (((type_3)var_15 & 2) != 0) {
            *(type_6 *)(var_16 + (int)(var_15 + -2)) =
                 *(type_6 *)(var_17 + (int)(var_15 + 4));
          }
        }
      }
      else {
        *(type_4 *)var_16 = buffer._0_4_;
        *(type_4 *)(var_16 + (int)(var_15 + -4)) =
             *(type_4 *)(var_17 + (int)(var_15 + 2));
        var_11 = (int)var_16 - (int)((type_3)(var_16 + 4) & 0xfffffffc);
        var_18 = (type_4 *)((int)buffer - var_11);
        var_19 = (type_4 *)((type_3)(var_16 + 4) & 0xfffffffc);
        for (var_8 = (type_3)(var_15 + var_11) >> 2; var_8 != 0; var_8 = var_8 - 1) {
          *var_19 = *var_18;
          var_18 = var_18 + (type_3)bVar16 * -2 + 1;
          var_19 = var_19 + (type_3)bVar16 * -2 + 1;
        }
      }
    }
    local_134 = local_13c;
  }
  *bufp = (char *)local_134;
  PVar7 = PARAM_OK;
LAB_00023e0b:
  if (var_20 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_21();
  }
  return PVar7;
}


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

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

undefined4 MASKED(undefined4 *param_1,FILE *param_2)

{
  char *pcVar1;
  char *pcVar2;
  uint uVar3;
  uint uVar4;
  FILE *pFVar5;
  undefined4 uVar6;
  int iVar7;
  char *pcVar8;
  char *pcVar9;
  undefined4 *puVar10;
  uint *puVar11;
  uint *puVar12;
  undefined4 *puVar13;
  int in_GS_OFFSET;
  bool bVar14;
  byte bVar15;
  FILE *local_13c;
  FILE *local_134;
  char acStack_126 [6];
  uint local_120 [64];
  int local_20;
  undefined4 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0x23cb9;
  local_134 = param_2;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 != (FILE *)0x0) {
    local_13c = (FILE *)0x0;
    pcVar8 = (char *)0x0;
    while (pcVar2 = fgets((char *)local_120,0x100,param_2), pcVar2 != (char *)0x0) {
      pcVar2 = strchr((char *)local_120,0xd);
      if (pcVar2 != (char *)0x0) {
        *pcVar2 = '\0';
      }
      pcVar2 = strchr((char *)local_120,10);
      puVar12 = local_120;
      if (pcVar2 != (char *)0x0) {
        *pcVar2 = '\0';
      }
      do {
        puVar11 = puVar12;
        uVar3 = *puVar11 + 0xfefefeff & ~*puVar11;
        uVar4 = uVar3 & 0x80808080;
        puVar12 = puVar11 + 1;
      } while (uVar4 == 0);
      bVar14 = (uVar3 & 0x8080) == 0;
      if (bVar14) {
        uVar4 = uVar4 >> 0x10;
      }
      if (bVar14) {
        puVar12 = (uint *)((int)puVar11 + 6);
      }
      iVar7 = (-3 - (uint)CARRY1((byte)uVar4,(byte)uVar4)) - (int)local_120;
      pcVar2 = (char *)((int)puVar12 + (int)(pcVar8 + iVar7));
      pFVar5 = (FILE *)realloc(local_13c,(size_t)(pcVar2 + 1));
      if (pFVar5 == (FILE *)0x0) {
        free(local_13c);
        uVar6 = 0xe;
        goto LAB_00023e0b;
      }
      pcVar1 = (char *)((int)puVar12 + iVar7 + 1);
      pcVar9 = pFVar5->_shortbuf + (int)(pcVar8 + -0x47);
      pcVar8 = pcVar2;
      local_13c = pFVar5;
      if (pcVar1 < (char *)0x4) {
        if (pcVar1 != (char *)0x0) {
          *pcVar9 = (char)local_120[0];
          if (((uint)pcVar1 & 2) != 0) {
            *(undefined2 *)(pcVar9 + (int)(pcVar1 + -2)) =
                 *(undefined2 *)(acStack_126 + (int)(pcVar1 + 4));
          }
        }
      }
      else {
        *(uint *)pcVar9 = local_120[0];
        *(undefined4 *)(pcVar9 + (int)(pcVar1 + -4)) =
             *(undefined4 *)(acStack_126 + (int)(pcVar1 + 2));
        iVar7 = (int)pcVar9 - (int)((uint)(pcVar9 + 4) & 0xfffffffc);
        puVar10 = (undefined4 *)((int)local_120 - iVar7);
        puVar13 = (undefined4 *)((uint)(pcVar9 + 4) & 0xfffffffc);
        for (uVar4 = (uint)(pcVar1 + iVar7) >> 2; uVar4 != 0; uVar4 = uVar4 - 1) {
          *puVar13 = *puVar10;
          puVar10 = puVar10 + (uint)bVar15 * -2 + 1;
          puVar13 = puVar13 + (uint)bVar15 * -2 + 1;
        }
      }
    }
    local_134 = local_13c;
  }
  *param_1 = local_134;
  uVar6 = 0;
LAB_00023e0b:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00028220();
  }
  return uVar6;
}

