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

int yyparse(void)

{
  TOKSTK *pTVar1;
  int iVar2;
  YYSTYPE YVar3;
  int iVar4;
  TOKSTK *pTVar5;
  char *msg;
  int iVar6;
  int iVar7;
  int in_GS_OFFSET;
  Ident identifier;
  Ident ident;
  
  iVar2 = *(int *)(in_GS_OFFSET + 0x14);
  level = 0;
  caller = (Symbol *)0x0;
  tos = 0;
  do {
    curs = 0;
    iVar7 = 0;
    pTVar5 = token_stack;
    if (tos == 0) goto LAB_0001d4d0;
    while( true ) {
      curs = iVar7 + 1;
      pTVar5 = pTVar5 + iVar7;
      tok.type = pTVar5->type;
      tok.token = pTVar5->token;
      tok.line = pTVar5->line;
      debugtoken(&tok,"next token");
      if (tok.type == 0) {
        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
          __stack_chk_fail_local();
        }
        return tok.type;
      }
      identifier.storage = ExternStorage;
      if (tok.type == 0x106) break;
      if (tok.type < 0x107) {
        if (tok.type == 0x105) {
          identifier.storage = ExplicitExternStorage;
        }
        goto LAB_0001d540;
      }
      if (tok.type == 0x107) {
        ident.name = (char *)0x0;
        ident.type_end = -1;
        ident.parmcnt = -1;
        ident.line = -1;
        ident.storage = AnyStorage;
        nexttoken();
        ident.type_end = -1;
        if (tok.type == 0x108) {
          iVar7 = nexttoken();
          if (iVar7 == 0x104) {
            ident.type_end = curs;
          }
          if (curs == 0) goto LAB_0001d802;
          if (curs + -1 < 1) {
            tok.type = 0;
          }
          else {
            tok.type = token_stack[curs + -2].type;
            tok.token = token_stack[curs + -2].token;
            tok.line = token_stack[curs + -2].line;
          }
          curs = curs + -1;
          debugtoken(&tok,"putback");
          skip_struct();
          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {
            if (curs == 0) goto LAB_0001d802;
            iVar7 = curs + -1;
            if (iVar7 < 1) goto LAB_0001d6d0;
            tok.type = token_stack[curs + -2].type;
            tok.token = token_stack[curs + -2].token;
            tok.line = token_stack[curs + -2].line;
            curs = iVar7;
            goto LAB_0001d658;
          }
          if (tok.type == 0x28) goto LAB_0001d611;
          if (tok.type != 0x3b) {
            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);
            file_error(msg,&tok);
          }
        }
        else {
LAB_0001d611:
          if (curs == 0) {
LAB_0001d802:
                    /* WARNING: Subroutine does not return */
            putback();
          }
          iVar7 = curs + -1;
          if (iVar7 < 1) {
LAB_0001d6d0:
            curs = iVar7;
            tok.type = 0;
          }
          else {
            tok.type = token_stack[curs + -2].type;
            tok.token = token_stack[curs + -2].token;
            tok.line = token_stack[curs + -2].line;
            curs = iVar7;
          }
LAB_0001d658:
          debugtoken(&tok,"putback");
        }
        dcl(&ident);
        if (ident.name != (char *)0x0) {
          declare_type(&ident);
        }
        goto LAB_0001d552;
      }
      if (tok.type != 0x111) goto LAB_0001d540;
      iVar7 = curs;
      pTVar5 = token_stack;
      if (curs == tos) {
LAB_0001d4d0:
        iVar4 = get_token();
        pTVar5 = token_stack;
        YVar3 = yylval;
        iVar7 = line_num;
        iVar6 = tos + 1;
        pTVar1 = token_stack + tos;
        pTVar1->type = iVar4;
        pTVar1->token = YVar3.str;
        pTVar1->line = iVar7;
        tos = iVar6;
        if (iVar6 == token_stack_length) {
          token_stack_length = iVar6 + token_stack_increase;
          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);
          token_stack = pTVar5;
        }
        yylval.str = (char *)0x0;
        iVar7 = curs;
      }
    }
    identifier.storage = StaticStorage;
    nexttoken();
LAB_0001d540:
    parse_declaration(&identifier,0);
LAB_0001d552:
    iVar7 = tos - curs;
    if (iVar7 < 1) {
      tos = 0;
    }
    else {
      memmove(token_stack,token_stack + curs,iVar7 * 0xc);
      tos = iVar7;
    }
  } while( true );
}



void FUN_0001d3c0(void)

{
  int *piVar1;
  int *piVar2;
  int *piVar3;
  int *piVar4;
  int *piVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  undefined4 uVar10;
  int unaff_EBP;
  int iVar11;
  int in_GS_OFFSET;
  undefined1 local_48 [16];
  undefined4 local_38;
  int local_34;
  int local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  
  FUN_00016376();
  iVar11 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  piVar1 = (int *)(unaff_EBP + 0x1e7fa);
  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;
  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;
  piVar2 = (int *)(unaff_EBP + 0x1e84e);
  *piVar2 = 0;
  piVar3 = (int *)(unaff_EBP + 0x1e806);
  *piVar3 = 0;
  piVar4 = (int *)(unaff_EBP + 0x1e80a);
LAB_0001d43c:
  iVar9 = 0;
  if (iVar11 == 0) goto LAB_0001d4d0;
LAB_0001d450:
  iVar11 = *piVar4;
  do {
    piVar5 = (int *)(iVar11 + iVar9 * 0xc);
    iVar11 = *piVar5;
    *piVar2 = iVar9 + 1;
    *piVar1 = iVar11;
    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];
    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];
    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);
    iVar11 = *piVar1;
    if (iVar11 == 0) {
      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
        FUN_0002ddf0();
      }
      return;
    }
    local_38 = 0;
    if (iVar11 == 0x106) {
      local_38 = 2;
      FUN_00019330();
LAB_0001d540:
      FUN_0001b320(local_48,0);
LAB_0001d552:
      iVar11 = *piVar3 - *piVar2;
      if (iVar11 < 1) {
        iVar11 = 0;
      }
      else {
        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);
      }
      *piVar3 = iVar11;
      *piVar2 = 0;
      goto LAB_0001d43c;
    }
    if (iVar11 < 0x107) {
      if (iVar11 == 0x105) {
        local_38 = 1;
      }
      goto LAB_0001d540;
    }
    if (iVar11 == 0x107) {
      local_34 = 0;
      local_30 = 0xffffffff;
      local_2c = 0xffffffff;
      local_28 = 0xffffffff;
      local_24 = 4;
      FUN_00019330();
      local_30 = -1;
      if (*piVar1 == 0x108) {
        iVar9 = FUN_00019330();
        iVar11 = *piVar2;
        if (iVar9 == 0x104) {
          local_30 = iVar11;
        }
        if (iVar11 == 0) goto LAB_0001d802;
        iVar11 = iVar11 + -1;
        *piVar2 = iVar11;
        if (iVar11 < 1) {
          *piVar1 = 0;
        }
        else {
          iVar11 = iVar11 * 0xc + *piVar4;
          *piVar1 = *(int *)(iVar11 + -0xc);
          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);
          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);
        }
        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);
        FUN_0001a000();
        iVar11 = *piVar1;
        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {
          if (*piVar2 == 0) goto LAB_0001d802;
          iVar11 = *piVar2 + -1;
          *piVar2 = iVar11;
          if (iVar11 < 1) goto LAB_0001d6d0;
          iVar11 = iVar11 * 0xc + *piVar4;
          *piVar1 = *(int *)(iVar11 + -0xc);
          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);
          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);
          goto LAB_0001d658;
        }
        if (iVar11 == 0x28) goto LAB_0001d611;
        if (iVar11 != 0x3b) {
          dcgettext(0,unaff_EBP + 0x13b0e,5);
          FUN_00018870();
        }
      }
      else {
LAB_0001d611:
        if (*piVar2 == 0) {
LAB_0001d802:
                    /* WARNING: Subroutine does not return */
          FUN_000189e0();
        }
        iVar11 = *piVar2 + -1;
        *piVar2 = iVar11;
        if (iVar11 < 1) {
LAB_0001d6d0:
          *piVar1 = 0;
        }
        else {
          iVar11 = iVar11 * 0xc + *piVar4;
          *piVar1 = *(int *)(iVar11 + -0xc);
          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);
          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);
        }
LAB_0001d658:
        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);
      }
      FUN_0001bd50(&local_34);
      if (local_34 != 0) {
        FUN_0001a430(&local_34);
      }
      goto LAB_0001d552;
    }
    if (iVar11 != 0x111) goto LAB_0001d540;
    iVar9 = *piVar2;
    if (iVar9 != *piVar3) goto LAB_0001d450;
LAB_0001d4d0:
    uVar10 = FUN_00016330();
    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);
    iVar11 = *piVar4;
    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);
    iVar9 = *piVar3 + 1;
    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);
    *puVar6 = uVar10;
    puVar6[1] = uVar8;
    puVar6[2] = uVar7;
    *piVar3 = iVar9;
    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {
      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);
      *(int *)(unaff_EBP + 0x1e33a) = iVar9;
      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);
      *piVar4 = iVar11;
    }
    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;
    iVar9 = *piVar2;
  } while( true );
}


PUSH EBP
CALL 0x00016376
ADD EBP,0x1daaa
PUSH EDI
XOR EDI,EDI
PUSH ESI
PUSH EBX
SUB ESP,0x5c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x4c],EAX
XOR EAX,EAX
LEA EAX,[EBP + 0xd9c]
LEA ESI,[EBP + 0xd50]
MOV dword ptr [EAX],0x0
LEA EAX,[EBP + 0xd64]
MOV dword ptr [EAX],0x0
LEA EAX,[EBP + 0xda4]
MOV dword ptr [EAX],0x0
MOV dword ptr [ESP + 0x4],EAX
LEA EAX,[EBP + 0xd5c]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [EAX],0x0
LEA EAX,[EBP + 0xd60]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBP + 0xffff5cf1]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBP + 0xc4c]
MOV dword ptr [ESP + 0x18],EAX
LEA EBX,[EBP + 0xc30]
XOR EAX,EAX
MOV dword ptr [ESP + 0x10],EBX
CMP EAX,EDI
JZ 0x0001d4d0
MOV EBX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EBX]
LEA ECX,[EAX + EAX*0x2]
MOV EBX,dword ptr [ESP + 0x4]
ADD EAX,0x1
SUB ESP,0x8
LEA EDX,[EDX + ECX*0x4]
MOV ECX,dword ptr [EDX]
MOV dword ptr [EBX],EAX
MOV dword ptr [ESI],ECX
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [ESI + 0x4],ECX
MOV EDX,dword ptr [EDX + 0x8]
MOV dword ptr [ESI + 0x8],EDX
PUSH dword ptr [ESP + 0x1c]
PUSH ESI
CALL 0x00018a20
MOV EAX,dword ptr [ESI]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001d5b0
MOV dword ptr [ESP + 0x34],0x0
CMP EAX,0x106
JZ 0x0001d698
JLE 0x0001d530
CMP EAX,0x107
JZ 0x0001d5d0
CMP EAX,0x111
JNZ 0x0001d540
MOV EAX,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX]
MOV EDI,dword ptr [EDI]
CMP EAX,EDI
JNZ 0x0001d450
NOP
MOV EBX,EBP
CALL 0x00016330
MOV EDX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ESP + 0xc]
MOV EDI,dword ptr [ESP + 0x18]
MOV EBX,dword ptr [EDX]
MOV EDX,dword ptr [ECX]
MOV EDI,dword ptr [EDI]
MOV dword ptr [ESP + 0x1c],EBX
MOV EBX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [EBX]
LEA EBX,[ECX + ECX*0x2]
ADD ECX,0x1
LEA EBX,[EDX + EBX*0x4]
MOV dword ptr [EBX],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EBX + 0x4],EDI
MOV dword ptr [EBX + 0x8],EAX
MOV EBX,dword ptr [ESP + 0x8]
MOV dword ptr [EBX],ECX
CMP ECX,dword ptr [EBP + 0x890]
JZ 0x0001d6e0
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX]
JMP 0x0001d456
CMP EAX,0x105
JNZ 0x0001d540
MOV dword ptr [ESP + 0x34],0x1
NOP
SUB ESP,0x8
PUSH 0x0
LEA EAX,[ESP + 0x30]
PUSH EAX
CALL 0x0001b320
ADD ESP,0x10
MOV EBX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [EBX]
MOV EAX,dword ptr [EAX]
MOV EDI,ECX
MOV dword ptr [ESP + 0x10],ECX
SUB EDI,EAX
TEST EDI,EDI
JG 0x0001d588
XOR EDI,EDI
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX],EDI
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EAX],0x0
JMP 0x0001d43c
MOV ECX,dword ptr [ESP + 0xc]
LEA EDX,[EDI + EDI*0x2]
LEA EAX,[EAX + EAX*0x2]
SUB ESP,0x4
SHL EDX,0x2
MOV EBX,EBP
MOV ECX,dword ptr [ECX]
PUSH EDX
LEA EAX,[ECX + EAX*0x4]
PUSH EAX
PUSH ECX
CALL 0x000120a0
ADD ESP,0x10
JMP 0x0001d56c
MOV ESI,dword ptr [ESP + 0x4c]
XOR ESI,dword ptr GS:[0x14]
JNZ 0x0001d7fd
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x3c],0xffffffff
MOV dword ptr [ESP + 0x40],0xffffffff
MOV dword ptr [ESP + 0x44],0xffffffff
MOV dword ptr [ESP + 0x48],0x4
CALL 0x00019330
CMP dword ptr [ESI],0x108
MOV dword ptr [ESP + 0x3c],0xffffffff
JZ 0x0001d710
MOV EDI,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0001d802
SUB EAX,0x1
LEA EBX,[EBP + 0xffff5cfc]
MOV dword ptr [EDI],EAX
TEST EAX,EAX
JLE 0x0001d6d0
MOV EDI,dword ptr [ESP + 0xc]
LEA EAX,[EAX + EAX*0x2]
LEA EBX,[EBP + 0xffff5cfc]
SHL EAX,0x2
ADD EAX,dword ptr [EDI]
LEA EDX,[EAX + -0xc]
MOV EAX,dword ptr [EAX + -0xc]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDX + 0x4]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EDX + 0x8]
MOV dword ptr [ESI + 0x8],EAX
SUB ESP,0x8
PUSH EBX
PUSH ESI
CALL 0x00018a20
ADD ESP,0x10
SUB ESP,0xc
LEA EBX,[ESP + 0x44]
PUSH EBX
CALL 0x0001bd50
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JZ 0x0001d552
SUB ESP,0xc
PUSH EBX
CALL 0x0001a430
ADD ESP,0x10
JMP 0x0001d552
MOV dword ptr [ESP + 0x34],0x2
CALL 0x00019330
JMP 0x0001d540
MOV EDI,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0001d802
SUB EAX,0x1
MOV dword ptr [EDI],EAX
TEST EAX,EAX
JG 0x0001d7d8
LEA ESI,[ESI]
NOP
MOV dword ptr [ESI],0x0
JMP 0x0001d658
ADD ECX,dword ptr [EBP + 0x88c]
SUB ESP,0x8
MOV EBX,EBP
LEA EAX,[ECX + ECX*0x2]
MOV dword ptr [EBP + 0x890],ECX
SHL EAX,0x2
PUSH EAX
PUSH EDX
CALL 0x00027730
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV dword ptr [EAX],EDX
JMP 0x0001d51a
CALL 0x00019330
CMP EAX,0x104
MOV EAX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX]
JNZ 0x0001d726
MOV dword ptr [ESP + 0x3c],EAX
TEST EAX,EAX
JZ 0x0001d802
MOV EDX,dword ptr [ESP + 0x4]
SUB EAX,0x1
MOV dword ptr [EDX],EAX
TEST EAX,EAX
JLE 0x0001d7d0
MOV EDI,dword ptr [ESP + 0xc]
LEA EAX,[EAX + EAX*0x2]
SHL EAX,0x2
ADD EAX,dword ptr [EDI]
LEA EDX,[EAX + -0xc]
MOV EAX,dword ptr [EAX + -0xc]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDX + 0x4]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EDX + 0x8]
MOV dword ptr [ESI + 0x8],EAX
SUB ESP,0x8
LEA EBX,[EBP + 0xffff5cfc]
PUSH EBX
PUSH ESI
CALL 0x00018a20
CALL 0x0001a000
MOV EAX,dword ptr [ESI]
ADD ESP,0x10
LEA EDX,[EAX + 0xfffffef7]
AND EDX,0xfffffff7
JZ 0x0001d6b0
CMP EAX,0x104
JZ 0x0001d6b0
CMP EAX,0x28
JZ 0x0001d611
CMP EAX,0x3b
JZ 0x0001d665
SUB ESP,0x4
LEA EAX,[EBP + 0xffff6064]
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00012110
MOV EDX,ESI
CALL 0x00018870
ADD ESP,0x10
JMP 0x0001d665
MOV dword ptr [ESI],0x0
JMP 0x0001d75f
MOV EDX,dword ptr [ESP + 0xc]
LEA EAX,[EAX + EAX*0x2]
SHL EAX,0x2
ADD EAX,dword ptr [EDX]
LEA EDX,[EAX + -0xc]
MOV EAX,dword ptr [EAX + -0xc]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDX + 0x4]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EDX + 0x8]
MOV dword ptr [ESI + 0x8],EAX
JMP 0x0001d658
CALL 0x0002ddf0
CALL 0x000189e0
(translation_unit "void FUN_0001d3c0(void)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}\n\n" (function_definition "void FUN_0001d3c0(void)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}" primitive_type (function_declarator "FUN_0001d3c0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 local_48 [16];" type_identifier (array_declarator "local_48 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_00016376();" (call_expression "FUN_00016376()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "piVar1 = (int *)(unaff_EBP + 0x1e7fa);" (assignment_expression "piVar1 = (int *)(unaff_EBP + 0x1e7fa)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e7fa)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7fa)" ( (binary_expression "unaff_EBP + 0x1e7fa" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e846) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e846) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e846)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e846)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e846)" ( (binary_expression "unaff_EBP + 0x1e846" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e80e) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e80e) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e80e)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e80e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e80e)" ( (binary_expression "unaff_EBP + 0x1e80e" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar2 = (int *)(unaff_EBP + 0x1e84e);" (assignment_expression "piVar2 = (int *)(unaff_EBP + 0x1e84e)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e84e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e84e)" ( (binary_expression "unaff_EBP + 0x1e84e" identifier + number_literal) )))) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (expression_statement "piVar3 = (int *)(unaff_EBP + 0x1e806);" (assignment_expression "piVar3 = (int *)(unaff_EBP + 0x1e806)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e806)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e806)" ( (binary_expression "unaff_EBP + 0x1e806" identifier + number_literal) )))) ;) (expression_statement "*piVar3 = 0;" (assignment_expression "*piVar3 = 0" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar4 = (int *)(unaff_EBP + 0x1e80a);" (assignment_expression "piVar4 = (int *)(unaff_EBP + 0x1e80a)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e80a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e80a)" ( (binary_expression "unaff_EBP + 0x1e80a" identifier + number_literal) )))) ;) (labeled_statement "LAB_0001d43c:\n  iVar9 = 0;" statement_identifier : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;)) (if_statement "if (iVar11 == 0) goto LAB_0001d4d0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d4d0;" goto statement_identifier ;)) (labeled_statement "LAB_0001d450:\n  iVar11 = *piVar4;" statement_identifier : (expression_statement "iVar11 = *piVar4;" (assignment_expression "iVar11 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;)) (do_statement "do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );" do (compound_statement "{\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  }" { (expression_statement "piVar5 = (int *)(iVar11 + iVar9 * 0xc);" (assignment_expression "piVar5 = (int *)(iVar11 + iVar9 * 0xc)" identifier = (cast_expression "(int *)(iVar11 + iVar9 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar9 * 0xc)" ( (binary_expression "iVar11 + iVar9 * 0xc" identifier + (binary_expression "iVar9 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "iVar11 = *piVar5;" (assignment_expression "iVar11 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*piVar2 = iVar9 + 1;" (assignment_expression "*piVar2 = iVar9 + 1" (pointer_expression "*piVar2" * identifier) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "*piVar1 = iVar11;" (assignment_expression "*piVar1 = iVar11" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "*(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];" (assignment_expression "*(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1]" (pointer_expression "*(int *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(int *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(unaff_EBP + 0x1e802) = piVar5[2];" (assignment_expression "*(int *)(unaff_EBP + 0x1e802) = piVar5[2]" (pointer_expression "*(int *)(unaff_EBP + 0x1e802)" * (cast_expression "(int *)(unaff_EBP + 0x1e802)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x1379b);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x1379b)" identifier (argument_list "(piVar1,unaff_EBP + 0x1379b)" ( identifier , (binary_expression "unaff_EBP + 0x1379b" identifier + number_literal) ))) ;) (expression_statement "iVar11 = *piVar1;" (assignment_expression "iVar11 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (if_statement "if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\n      }\n      return;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\n      }\n      return;\n    }" { (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002ddf0();\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_0002ddf0();\n      }" { comment (expression_statement "FUN_0002ddf0();" (call_expression "FUN_0002ddf0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (if_statement "if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }" if (parenthesized_expression "(iVar11 == 0x106)" ( (binary_expression "iVar11 == 0x106" identifier == number_literal) )) (compound_statement "{\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }" { (expression_statement "local_38 = 2;" (assignment_expression "local_38 = 2" identifier = number_literal) ;) (expression_statement "FUN_00019330();" (call_expression "FUN_00019330()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001d540:\n      FUN_0001b320(local_48,0);" statement_identifier : (expression_statement "FUN_0001b320(local_48,0);" (call_expression "FUN_0001b320(local_48,0)" identifier (argument_list "(local_48,0)" ( identifier , number_literal ))) ;)) (labeled_statement "LAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;" statement_identifier : (expression_statement "iVar11 = *piVar3 - *piVar2;" (assignment_expression "iVar11 = *piVar3 - *piVar2" identifier = (binary_expression "*piVar3 - *piVar2" (pointer_expression "*piVar3" * identifier) - (pointer_expression "*piVar2" * identifier))) ;)) (if_statement "if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n        iVar11 = 0;\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" else (compound_statement "{\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" { (expression_statement "memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);" (call_expression "memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc)" identifier (argument_list "((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc)" ( (cast_expression "(void *)*piVar4" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier)) , (cast_expression "(void *)(*piVar4 + *piVar2 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + *piVar2 * 0xc)" ( (binary_expression "*piVar4 + *piVar2 * 0xc" (pointer_expression "*piVar4" * identifier) + (binary_expression "*piVar2 * 0xc" (pointer_expression "*piVar2" * identifier) * number_literal)) ))) , (binary_expression "iVar11 * 0xc" identifier * number_literal) ))) ;) }))) (expression_statement "*piVar3 = iVar11;" (assignment_expression "*piVar3 = iVar11" (pointer_expression "*piVar3" * identifier) = identifier) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001d43c;" goto statement_identifier ;) })) (if_statement "if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }" if (parenthesized_expression "(iVar11 < 0x107)" ( (binary_expression "iVar11 < 0x107" identifier < number_literal) )) (compound_statement "{\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }" { (if_statement "if (iVar11 == 0x105) {\n        local_38 = 1;\n      }" if (parenthesized_expression "(iVar11 == 0x105)" ( (binary_expression "iVar11 == 0x105" identifier == number_literal) )) (compound_statement "{\n        local_38 = 1;\n      }" { (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001d540;" goto statement_identifier ;) })) (if_statement "if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }" if (parenthesized_expression "(iVar11 == 0x107)" ( (binary_expression "iVar11 == 0x107" identifier == number_literal) )) (compound_statement "{\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0xffffffff;" (assignment_expression "local_30 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" identifier = number_literal) ;) (expression_statement "FUN_00019330();" (call_expression "FUN_00019330()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;) (if_statement "if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" if (parenthesized_expression "(*piVar1 == 0x108)" ( (binary_expression "*piVar1 == 0x108" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }" { (expression_statement "iVar9 = FUN_00019330();" (assignment_expression "iVar9 = FUN_00019330()" identifier = (call_expression "FUN_00019330()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *piVar2;" (assignment_expression "iVar11 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (if_statement "if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }" if (parenthesized_expression "(iVar9 == 0x104)" ( (binary_expression "iVar9 == 0x104" identifier == number_literal) )) (compound_statement "{\n          local_30 = iVar11;\n        }" { (expression_statement "local_30 = iVar11;" (assignment_expression "local_30 = iVar11" identifier = identifier) ;) })) (if_statement "if (iVar11 == 0) goto LAB_0001d802;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d802;" goto statement_identifier ;)) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n          *piVar1 = 0;\n        }" { (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) }) (else_clause "else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" else (compound_statement "{\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" { (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" identifier = (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" identifier * number_literal) + (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*(int *)(iVar11 + -0xc)" * (cast_expression "(int *)(iVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -8)" * (cast_expression "(undefined4 *)(iVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -4)" * (cast_expression "(undefined4 *)(iVar11 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x137a6)" identifier (argument_list "(piVar1,unaff_EBP + 0x137a6)" ( identifier , (binary_expression "unaff_EBP + 0x137a6" identifier + number_literal) ))) ;) (expression_statement "FUN_0001a000();" (call_expression "FUN_0001a000()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *piVar1;" (assignment_expression "iVar11 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (if_statement "if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }" if (parenthesized_expression "(((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104))" ( (binary_expression "((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)" (parenthesized_expression "((iVar11 - 0x109U & 0xfffffff7) == 0)" ( (binary_expression "(iVar11 - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(iVar11 - 0x109U & 0xfffffff7)" ( (binary_expression "iVar11 - 0x109U & 0xfffffff7" (binary_expression "iVar11 - 0x109U" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar11 == 0x104)" ( (binary_expression "iVar11 == 0x104" identifier == number_literal) ))) )) (compound_statement "{\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }" { (if_statement "if (*piVar2 == 0) goto LAB_0001d802;" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_0001d802;" goto statement_identifier ;)) (expression_statement "iVar11 = *piVar2 + -1;" (assignment_expression "iVar11 = *piVar2 + -1" identifier = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar11 < 1) goto LAB_0001d6d0;" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0001d6d0;" goto statement_identifier ;)) (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" identifier = (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" identifier * number_literal) + (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*(int *)(iVar11 + -0xc)" * (cast_expression "(int *)(iVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -8)" * (cast_expression "(undefined4 *)(iVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -4)" * (cast_expression "(undefined4 *)(iVar11 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d658;" goto statement_identifier ;) })) (if_statement "if (iVar11 == 0x28) goto LAB_0001d611;" if (parenthesized_expression "(iVar11 == 0x28)" ( (binary_expression "iVar11 == 0x28" identifier == number_literal) )) (goto_statement "goto LAB_0001d611;" goto statement_identifier ;)) (if_statement "if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }" if (parenthesized_expression "(iVar11 != 0x3b)" ( (binary_expression "iVar11 != 0x3b" identifier != number_literal) )) (compound_statement "{\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }" { (expression_statement "dcgettext(0,unaff_EBP + 0x13b0e,5);" (call_expression "dcgettext(0,unaff_EBP + 0x13b0e,5)" identifier (argument_list "(0,unaff_EBP + 0x13b0e,5)" ( number_literal , (binary_expression "unaff_EBP + 0x13b0e" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_00018870();" (call_expression "FUN_00018870()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" else (compound_statement "{\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" { (labeled_statement "LAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }" statement_identifier : (if_statement "if (*piVar2 == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();\n        }" { (labeled_statement "LAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n          FUN_000189e0();" statement_identifier : comment (expression_statement "FUN_000189e0();" (call_expression "FUN_000189e0()" identifier (argument_list "()" ( ))) ;)) }))) (expression_statement "iVar11 = *piVar2 + -1;" (assignment_expression "iVar11 = *piVar2 + -1" identifier = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }" { (labeled_statement "LAB_0001d6d0:\n          *piVar1 = 0;" statement_identifier : (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;)) }) (else_clause "else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" else (compound_statement "{\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" { (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" identifier = (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" identifier * number_literal) + (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*(int *)(iVar11 + -0xc)" * (cast_expression "(int *)(iVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -8)" * (cast_expression "(undefined4 *)(iVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -4)" * (cast_expression "(undefined4 *)(iVar11 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" statement_identifier : (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x137a6)" identifier (argument_list "(piVar1,unaff_EBP + 0x137a6)" ( identifier , (binary_expression "unaff_EBP + 0x137a6" identifier + number_literal) ))) ;)) }))) (expression_statement "FUN_0001bd50(&local_34);" (call_expression "FUN_0001bd50(&local_34)" identifier (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) ))) ;) (if_statement "if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0001a430(&local_34);\n      }" { (expression_statement "FUN_0001a430(&local_34);" (call_expression "FUN_0001a430(&local_34)" identifier (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) ))) ;) })) (goto_statement "goto LAB_0001d552;" goto statement_identifier ;) })) (if_statement "if (iVar11 != 0x111) goto LAB_0001d540;" if (parenthesized_expression "(iVar11 != 0x111)" ( (binary_expression "iVar11 != 0x111" identifier != number_literal) )) (goto_statement "goto LAB_0001d540;" goto statement_identifier ;)) (expression_statement "iVar9 = *piVar2;" (assignment_expression "iVar9 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (if_statement "if (iVar9 != *piVar3) goto LAB_0001d450;" if (parenthesized_expression "(iVar9 != *piVar3)" ( (binary_expression "iVar9 != *piVar3" identifier != (pointer_expression "*piVar3" * identifier)) )) (goto_statement "goto LAB_0001d450;" goto statement_identifier ;)) (labeled_statement "LAB_0001d4d0:\n    uVar10 = FUN_00016330();" statement_identifier : (expression_statement "uVar10 = FUN_00016330();" (assignment_expression "uVar10 = FUN_00016330()" identifier = (call_expression "FUN_00016330()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);" (assignment_expression "uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6da)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6da)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e6da)" ( (binary_expression "unaff_EBP + 0x1e6da" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *piVar4;" (assignment_expression "iVar11 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);" (assignment_expression "uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6f6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e6f6)" ( (binary_expression "unaff_EBP + 0x1e6f6" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *piVar3 + 1;" (assignment_expression "iVar9 = *piVar3 + 1" identifier = (binary_expression "*piVar3 + 1" (pointer_expression "*piVar3" * identifier) + number_literal)) ;) (expression_statement "puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);" (assignment_expression "puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar11 + *piVar3 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *piVar3 * 0xc)" ( (binary_expression "iVar11 + *piVar3 * 0xc" identifier + (binary_expression "*piVar3 * 0xc" (pointer_expression "*piVar3" * identifier) * number_literal)) )))) ;) (expression_statement "*puVar6 = uVar10;" (assignment_expression "*puVar6 = uVar10" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6[1] = uVar8;" (assignment_expression "puVar6[1] = uVar8" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = uVar7;" (assignment_expression "puVar6[2] = uVar7" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = iVar9;" (assignment_expression "*piVar3 = iVar9" (pointer_expression "*piVar3" * identifier) = identifier) ;) (if_statement "if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }" if (parenthesized_expression "(iVar9 == *(int *)(unaff_EBP + 0x1e33a))" ( (binary_expression "iVar9 == *(int *)(unaff_EBP + 0x1e33a)" identifier == (pointer_expression "*(int *)(unaff_EBP + 0x1e33a)" * (cast_expression "(int *)(unaff_EBP + 0x1e33a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e33a)" ( (binary_expression "unaff_EBP + 0x1e33a" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }" { (expression_statement "iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);" (assignment_expression "iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336)" identifier = (binary_expression "iVar9 + *(int *)(unaff_EBP + 0x1e336)" identifier + (pointer_expression "*(int *)(unaff_EBP + 0x1e336)" * (cast_expression "(int *)(unaff_EBP + 0x1e336)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e336)" ( (binary_expression "unaff_EBP + 0x1e336" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(unaff_EBP + 0x1e33a) = iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x1e33a) = iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x1e33a)" * (cast_expression "(int *)(unaff_EBP + 0x1e33a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e33a)" ( (binary_expression "unaff_EBP + 0x1e33a" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);" (assignment_expression "iVar11 = FUN_00027730(iVar11,iVar9 * 0xc)" identifier = (call_expression "FUN_00027730(iVar11,iVar9 * 0xc)" identifier (argument_list "(iVar11,iVar9 * 0xc)" ( identifier , (binary_expression "iVar9 * 0xc" identifier * number_literal) )))) ;) (expression_statement "*piVar4 = iVar11;" (assignment_expression "*piVar4 = iVar11" (pointer_expression "*piVar4" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6f6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e6f6)" ( (binary_expression "unaff_EBP + 0x1e6f6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = *piVar2;" (assignment_expression "iVar9 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nint yyparse(void)\n\n{\n  TOKSTK *pTVar1;\n  int iVar2;\n  YYSTYPE YVar3;\n  int iVar4;\n  TOKSTK *pTVar5;\n  char *msg;\n  int iVar6;\n  int iVar7;\n  int in_GS_OFFSET;\n  Ident identifier;\n  Ident ident;\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  level = 0;\n  caller = (Symbol *)0x0;\n  tos = 0;\n  do {\n    curs = 0;\n    iVar7 = 0;\n    pTVar5 = token_stack;\n    if (tos == 0) goto LAB_0001d4d0;\n    while( true ) {\n      curs = iVar7 + 1;\n      pTVar5 = pTVar5 + iVar7;\n      tok.type = pTVar5->type;\n      tok.token = pTVar5->token;\n      tok.line = pTVar5->line;\n      debugtoken(&tok,"next token");\n      if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }\n      identifier.storage = ExternStorage;\n      if (tok.type == 0x106) break;\n      if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }\n      if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }\n      if (tok.type != 0x111) goto LAB_0001d540;\n      iVar7 = curs;\n      pTVar5 = token_stack;\n      if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }\n    }\n    identifier.storage = StaticStorage;\n    nexttoken();\nLAB_0001d540:\n    parse_declaration(&identifier,0);\nLAB_0001d552:\n    iVar7 = tos - curs;\n    if (iVar7 < 1) {\n      tos = 0;\n    }\n    else {\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }\n  } while( true );\n}\n\n" comment comment (function_definition "int yyparse(void)\n\n{\n  TOKSTK *pTVar1;\n  int iVar2;\n  YYSTYPE YVar3;\n  int iVar4;\n  TOKSTK *pTVar5;\n  char *msg;\n  int iVar6;\n  int iVar7;\n  int in_GS_OFFSET;\n  Ident identifier;\n  Ident ident;\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  level = 0;\n  caller = (Symbol *)0x0;\n  tos = 0;\n  do {\n    curs = 0;\n    iVar7 = 0;\n    pTVar5 = token_stack;\n    if (tos == 0) goto LAB_0001d4d0;\n    while( true ) {\n      curs = iVar7 + 1;\n      pTVar5 = pTVar5 + iVar7;\n      tok.type = pTVar5->type;\n      tok.token = pTVar5->token;\n      tok.line = pTVar5->line;\n      debugtoken(&tok,"next token");\n      if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }\n      identifier.storage = ExternStorage;\n      if (tok.type == 0x106) break;\n      if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }\n      if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }\n      if (tok.type != 0x111) goto LAB_0001d540;\n      iVar7 = curs;\n      pTVar5 = token_stack;\n      if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }\n    }\n    identifier.storage = StaticStorage;\n    nexttoken();\nLAB_0001d540:\n    parse_declaration(&identifier,0);\nLAB_0001d552:\n    iVar7 = tos - curs;\n    if (iVar7 < 1) {\n      tos = 0;\n    }\n    else {\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }\n  } while( true );\n}" primitive_type (function_declarator "yyparse(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  TOKSTK *pTVar1;\n  int iVar2;\n  YYSTYPE YVar3;\n  int iVar4;\n  TOKSTK *pTVar5;\n  char *msg;\n  int iVar6;\n  int iVar7;\n  int in_GS_OFFSET;\n  Ident identifier;\n  Ident ident;\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  level = 0;\n  caller = (Symbol *)0x0;\n  tos = 0;\n  do {\n    curs = 0;\n    iVar7 = 0;\n    pTVar5 = token_stack;\n    if (tos == 0) goto LAB_0001d4d0;\n    while( true ) {\n      curs = iVar7 + 1;\n      pTVar5 = pTVar5 + iVar7;\n      tok.type = pTVar5->type;\n      tok.token = pTVar5->token;\n      tok.line = pTVar5->line;\n      debugtoken(&tok,"next token");\n      if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }\n      identifier.storage = ExternStorage;\n      if (tok.type == 0x106) break;\n      if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }\n      if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }\n      if (tok.type != 0x111) goto LAB_0001d540;\n      iVar7 = curs;\n      pTVar5 = token_stack;\n      if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }\n    }\n    identifier.storage = StaticStorage;\n    nexttoken();\nLAB_0001d540:\n    parse_declaration(&identifier,0);\nLAB_0001d552:\n    iVar7 = tos - curs;\n    if (iVar7 < 1) {\n      tos = 0;\n    }\n    else {\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }\n  } while( true );\n}" { (declaration "TOKSTK *pTVar1;" type_identifier (pointer_declarator "*pTVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "YYSTYPE YVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "TOKSTK *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "char *msg;" primitive_type (pointer_declarator "*msg" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "Ident identifier;" type_identifier identifier ;) (declaration "Ident ident;" type_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) ))))) ;) (expression_statement "level = 0;" (assignment_expression "level = 0" identifier = number_literal) ;) (expression_statement "caller = (Symbol *)0x0;" (assignment_expression "caller = (Symbol *)0x0" identifier = (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "tos = 0;" (assignment_expression "tos = 0" identifier = number_literal) ;) (do_statement "do {\n    curs = 0;\n    iVar7 = 0;\n    pTVar5 = token_stack;\n    if (tos == 0) goto LAB_0001d4d0;\n    while( true ) {\n      curs = iVar7 + 1;\n      pTVar5 = pTVar5 + iVar7;\n      tok.type = pTVar5->type;\n      tok.token = pTVar5->token;\n      tok.line = pTVar5->line;\n      debugtoken(&tok,"next token");\n      if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }\n      identifier.storage = ExternStorage;\n      if (tok.type == 0x106) break;\n      if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }\n      if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }\n      if (tok.type != 0x111) goto LAB_0001d540;\n      iVar7 = curs;\n      pTVar5 = token_stack;\n      if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }\n    }\n    identifier.storage = StaticStorage;\n    nexttoken();\nLAB_0001d540:\n    parse_declaration(&identifier,0);\nLAB_0001d552:\n    iVar7 = tos - curs;\n    if (iVar7 < 1) {\n      tos = 0;\n    }\n    else {\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }\n  } while( true );" do (compound_statement "{\n    curs = 0;\n    iVar7 = 0;\n    pTVar5 = token_stack;\n    if (tos == 0) goto LAB_0001d4d0;\n    while( true ) {\n      curs = iVar7 + 1;\n      pTVar5 = pTVar5 + iVar7;\n      tok.type = pTVar5->type;\n      tok.token = pTVar5->token;\n      tok.line = pTVar5->line;\n      debugtoken(&tok,"next token");\n      if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }\n      identifier.storage = ExternStorage;\n      if (tok.type == 0x106) break;\n      if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }\n      if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }\n      if (tok.type != 0x111) goto LAB_0001d540;\n      iVar7 = curs;\n      pTVar5 = token_stack;\n      if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }\n    }\n    identifier.storage = StaticStorage;\n    nexttoken();\nLAB_0001d540:\n    parse_declaration(&identifier,0);\nLAB_0001d552:\n    iVar7 = tos - curs;\n    if (iVar7 < 1) {\n      tos = 0;\n    }\n    else {\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }\n  }" { (expression_statement "curs = 0;" (assignment_expression "curs = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "pTVar5 = token_stack;" (assignment_expression "pTVar5 = token_stack" identifier = identifier) ;) (if_statement "if (tos == 0) goto LAB_0001d4d0;" if (parenthesized_expression "(tos == 0)" ( (binary_expression "tos == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d4d0;" goto statement_identifier ;)) (while_statement "while( true ) {\n      curs = iVar7 + 1;\n      pTVar5 = pTVar5 + iVar7;\n      tok.type = pTVar5->type;\n      tok.token = pTVar5->token;\n      tok.line = pTVar5->line;\n      debugtoken(&tok,"next token");\n      if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }\n      identifier.storage = ExternStorage;\n      if (tok.type == 0x106) break;\n      if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }\n      if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }\n      if (tok.type != 0x111) goto LAB_0001d540;\n      iVar7 = curs;\n      pTVar5 = token_stack;\n      if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      curs = iVar7 + 1;\n      pTVar5 = pTVar5 + iVar7;\n      tok.type = pTVar5->type;\n      tok.token = pTVar5->token;\n      tok.line = pTVar5->line;\n      debugtoken(&tok,"next token");\n      if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }\n      identifier.storage = ExternStorage;\n      if (tok.type == 0x106) break;\n      if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }\n      if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }\n      if (tok.type != 0x111) goto LAB_0001d540;\n      iVar7 = curs;\n      pTVar5 = token_stack;\n      if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }\n    }" { (expression_statement "curs = iVar7 + 1;" (assignment_expression "curs = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pTVar5 = pTVar5 + iVar7;" (assignment_expression "pTVar5 = pTVar5 + iVar7" identifier = (binary_expression "pTVar5 + iVar7" identifier + identifier)) ;) (expression_statement "tok.type = pTVar5->type;" (assignment_expression "tok.type = pTVar5->type" (field_expression "tok.type" identifier . field_identifier) = (field_expression "pTVar5->type" identifier -> field_identifier)) ;) (expression_statement "tok.token = pTVar5->token;" (assignment_expression "tok.token = pTVar5->token" (field_expression "tok.token" identifier . field_identifier) = (field_expression "pTVar5->token" identifier -> field_identifier)) ;) (expression_statement "tok.line = pTVar5->line;" (assignment_expression "tok.line = pTVar5->line" (field_expression "tok.line" identifier . field_identifier) = (field_expression "pTVar5->line" identifier -> field_identifier)) ;) (expression_statement "debugtoken(&tok,"next token");" (call_expression "debugtoken(&tok,"next token")" identifier (argument_list "(&tok,"next token")" ( (pointer_expression "&tok" & identifier) , (string_literal ""next token"" " string_content ") ))) ;) (if_statement "if (tok.type == 0) {\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }" if (parenthesized_expression "(tok.type == 0)" ( (binary_expression "tok.type == 0" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n          __stack_chk_fail_local();\n        }\n        return tok.type;\n      }" { (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 tok.type;" return (field_expression "tok.type" identifier . field_identifier) ;) })) (expression_statement "identifier.storage = ExternStorage;" (assignment_expression "identifier.storage = ExternStorage" (field_expression "identifier.storage" identifier . field_identifier) = identifier) ;) (if_statement "if (tok.type == 0x106) break;" if (parenthesized_expression "(tok.type == 0x106)" ( (binary_expression "tok.type == 0x106" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (tok.type < 0x107) {\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }" if (parenthesized_expression "(tok.type < 0x107)" ( (binary_expression "tok.type < 0x107" (field_expression "tok.type" identifier . field_identifier) < number_literal) )) (compound_statement "{\n        if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }\n        goto LAB_0001d540;\n      }" { (if_statement "if (tok.type == 0x105) {\n          identifier.storage = ExplicitExternStorage;\n        }" if (parenthesized_expression "(tok.type == 0x105)" ( (binary_expression "tok.type == 0x105" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (compound_statement "{\n          identifier.storage = ExplicitExternStorage;\n        }" { (expression_statement "identifier.storage = ExplicitExternStorage;" (assignment_expression "identifier.storage = ExplicitExternStorage" (field_expression "identifier.storage" identifier . field_identifier) = identifier) ;) })) (goto_statement "goto LAB_0001d540;" goto statement_identifier ;) })) (if_statement "if (tok.type == 0x107) {\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }" if (parenthesized_expression "(tok.type == 0x107)" ( (binary_expression "tok.type == 0x107" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        ident.name = (char *)0x0;\n        ident.type_end = -1;\n        ident.parmcnt = -1;\n        ident.line = -1;\n        ident.storage = AnyStorage;\n        nexttoken();\n        ident.type_end = -1;\n        if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }\n        dcl(&ident);\n        if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }\n        goto LAB_0001d552;\n      }" { (expression_statement "ident.name = (char *)0x0;" (assignment_expression "ident.name = (char *)0x0" (field_expression "ident.name" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ident.type_end = -1;" (assignment_expression "ident.type_end = -1" (field_expression "ident.type_end" identifier . field_identifier) = number_literal) ;) (expression_statement "ident.parmcnt = -1;" (assignment_expression "ident.parmcnt = -1" (field_expression "ident.parmcnt" identifier . field_identifier) = number_literal) ;) (expression_statement "ident.line = -1;" (assignment_expression "ident.line = -1" (field_expression "ident.line" identifier . field_identifier) = number_literal) ;) (expression_statement "ident.storage = AnyStorage;" (assignment_expression "ident.storage = AnyStorage" (field_expression "ident.storage" identifier . field_identifier) = identifier) ;) (expression_statement "nexttoken();" (call_expression "nexttoken()" identifier (argument_list "()" ( ))) ;) (expression_statement "ident.type_end = -1;" (assignment_expression "ident.type_end = -1" (field_expression "ident.type_end" identifier . field_identifier) = number_literal) ;) (if_statement "if (tok.type == 0x108) {\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }\n        else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }" if (parenthesized_expression "(tok.type == 0x108)" ( (binary_expression "tok.type == 0x108" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (compound_statement "{\n          iVar7 = nexttoken();\n          if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }\n          if (curs == 0) goto LAB_0001d802;\n          if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }\n          curs = curs + -1;\n          debugtoken(&tok,"putback");\n          skip_struct();\n          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }\n          if (tok.type == 0x28) goto LAB_0001d611;\n          if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }\n        }" { (expression_statement "iVar7 = nexttoken();" (assignment_expression "iVar7 = nexttoken()" identifier = (call_expression "nexttoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0x104) {\n            ident.type_end = curs;\n          }" if (parenthesized_expression "(iVar7 == 0x104)" ( (binary_expression "iVar7 == 0x104" identifier == number_literal) )) (compound_statement "{\n            ident.type_end = curs;\n          }" { (expression_statement "ident.type_end = curs;" (assignment_expression "ident.type_end = curs" (field_expression "ident.type_end" identifier . field_identifier) = identifier) ;) })) (if_statement "if (curs == 0) goto LAB_0001d802;" if (parenthesized_expression "(curs == 0)" ( (binary_expression "curs == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d802;" goto statement_identifier ;)) (if_statement "if (curs + -1 < 1) {\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }" if (parenthesized_expression "(curs + -1 < 1)" ( (binary_expression "curs + -1 < 1" (binary_expression "curs + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n            tok.type = 0;\n          }" { (expression_statement "tok.type = 0;" (assignment_expression "tok.type = 0" (field_expression "tok.type" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }" else (compound_statement "{\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n          }" { (expression_statement "tok.type = token_stack[curs + -2].type;" (assignment_expression "tok.type = token_stack[curs + -2].type" (field_expression "tok.type" identifier . field_identifier) = (field_expression "token_stack[curs + -2].type" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "tok.token = token_stack[curs + -2].token;" (assignment_expression "tok.token = token_stack[curs + -2].token" (field_expression "tok.token" identifier . field_identifier) = (field_expression "token_stack[curs + -2].token" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "tok.line = token_stack[curs + -2].line;" (assignment_expression "tok.line = token_stack[curs + -2].line" (field_expression "tok.line" identifier . field_identifier) = (field_expression "token_stack[curs + -2].line" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) }))) (expression_statement "curs = curs + -1;" (assignment_expression "curs = curs + -1" identifier = (binary_expression "curs + -1" identifier + number_literal)) ;) (expression_statement "debugtoken(&tok,"putback");" (call_expression "debugtoken(&tok,"putback")" identifier (argument_list "(&tok,"putback")" ( (pointer_expression "&tok" & identifier) , (string_literal ""putback"" " string_content ") ))) ;) (expression_statement "skip_struct();" (call_expression "skip_struct()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }" if (parenthesized_expression "(((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104))" ( (binary_expression "((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)" (parenthesized_expression "((tok.type - 0x109U & 0xfffffff7) == 0)" ( (binary_expression "(tok.type - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(tok.type - 0x109U & 0xfffffff7)" ( (binary_expression "tok.type - 0x109U & 0xfffffff7" (binary_expression "tok.type - 0x109U" (field_expression "tok.type" identifier . field_identifier) - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(tok.type == 0x104)" ( (binary_expression "tok.type == 0x104" (field_expression "tok.type" identifier . field_identifier) == number_literal) ))) )) (compound_statement "{\n            if (curs == 0) goto LAB_0001d802;\n            iVar7 = curs + -1;\n            if (iVar7 < 1) goto LAB_0001d6d0;\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n            goto LAB_0001d658;\n          }" { (if_statement "if (curs == 0) goto LAB_0001d802;" if (parenthesized_expression "(curs == 0)" ( (binary_expression "curs == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d802;" goto statement_identifier ;)) (expression_statement "iVar7 = curs + -1;" (assignment_expression "iVar7 = curs + -1" identifier = (binary_expression "curs + -1" identifier + number_literal)) ;) (if_statement "if (iVar7 < 1) goto LAB_0001d6d0;" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0001d6d0;" goto statement_identifier ;)) (expression_statement "tok.type = token_stack[curs + -2].type;" (assignment_expression "tok.type = token_stack[curs + -2].type" (field_expression "tok.type" identifier . field_identifier) = (field_expression "token_stack[curs + -2].type" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "tok.token = token_stack[curs + -2].token;" (assignment_expression "tok.token = token_stack[curs + -2].token" (field_expression "tok.token" identifier . field_identifier) = (field_expression "token_stack[curs + -2].token" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "tok.line = token_stack[curs + -2].line;" (assignment_expression "tok.line = token_stack[curs + -2].line" (field_expression "tok.line" identifier . field_identifier) = (field_expression "token_stack[curs + -2].line" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "curs = iVar7;" (assignment_expression "curs = iVar7" identifier = identifier) ;) (goto_statement "goto LAB_0001d658;" goto statement_identifier ;) })) (if_statement "if (tok.type == 0x28) goto LAB_0001d611;" if (parenthesized_expression "(tok.type == 0x28)" ( (binary_expression "tok.type == 0x28" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (goto_statement "goto LAB_0001d611;" goto statement_identifier ;)) (if_statement "if (tok.type != 0x3b) {\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }" if (parenthesized_expression "(tok.type != 0x3b)" ( (binary_expression "tok.type != 0x3b" (field_expression "tok.type" identifier . field_identifier) != number_literal) )) (compound_statement "{\n            msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);\n            file_error(msg,&tok);\n          }" { (expression_statement "msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5);" (assignment_expression "msg = (char *)dcgettext(0,"missing `;\' after struct declaration",5)" identifier = (cast_expression "(char *)dcgettext(0,"missing `;\' after struct declaration",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing `;\' after struct declaration",5)" identifier (argument_list "(0,"missing `;\' after struct declaration",5)" ( number_literal , (string_literal ""missing `;\' after struct declaration"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "file_error(msg,&tok);" (call_expression "file_error(msg,&tok)" identifier (argument_list "(msg,&tok)" ( identifier , (pointer_expression "&tok" & identifier) ))) ;) })) }) (else_clause "else {\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }" else (compound_statement "{\nLAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }\n          iVar7 = curs + -1;\n          if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }\nLAB_0001d658:\n          debugtoken(&tok,"putback");\n        }" { (labeled_statement "LAB_0001d611:\n          if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }" statement_identifier : (if_statement "if (curs == 0) {\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }" if (parenthesized_expression "(curs == 0)" ( (binary_expression "curs == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();\n          }" { (labeled_statement "LAB_0001d802:\n                    /* WARNING: Subroutine does not return */\n            putback();" statement_identifier : comment (expression_statement "putback();" (call_expression "putback()" identifier (argument_list "()" ( ))) ;)) }))) (expression_statement "iVar7 = curs + -1;" (assignment_expression "iVar7 = curs + -1" identifier = (binary_expression "curs + -1" identifier + number_literal)) ;) (if_statement "if (iVar7 < 1) {\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }\n          else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0001d6d0:\n            curs = iVar7;\n            tok.type = 0;\n          }" { (labeled_statement "LAB_0001d6d0:\n            curs = iVar7;" statement_identifier : (expression_statement "curs = iVar7;" (assignment_expression "curs = iVar7" identifier = identifier) ;)) (expression_statement "tok.type = 0;" (assignment_expression "tok.type = 0" (field_expression "tok.type" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }" else (compound_statement "{\n            tok.type = token_stack[curs + -2].type;\n            tok.token = token_stack[curs + -2].token;\n            tok.line = token_stack[curs + -2].line;\n            curs = iVar7;\n          }" { (expression_statement "tok.type = token_stack[curs + -2].type;" (assignment_expression "tok.type = token_stack[curs + -2].type" (field_expression "tok.type" identifier . field_identifier) = (field_expression "token_stack[curs + -2].type" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "tok.token = token_stack[curs + -2].token;" (assignment_expression "tok.token = token_stack[curs + -2].token" (field_expression "tok.token" identifier . field_identifier) = (field_expression "token_stack[curs + -2].token" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "tok.line = token_stack[curs + -2].line;" (assignment_expression "tok.line = token_stack[curs + -2].line" (field_expression "tok.line" identifier . field_identifier) = (field_expression "token_stack[curs + -2].line" (subscript_expression "token_stack[curs + -2]" identifier [ (binary_expression "curs + -2" identifier + number_literal) ]) . field_identifier)) ;) (expression_statement "curs = iVar7;" (assignment_expression "curs = iVar7" identifier = identifier) ;) }))) (labeled_statement "LAB_0001d658:\n          debugtoken(&tok,"putback");" statement_identifier : (expression_statement "debugtoken(&tok,"putback");" (call_expression "debugtoken(&tok,"putback")" identifier (argument_list "(&tok,"putback")" ( (pointer_expression "&tok" & identifier) , (string_literal ""putback"" " string_content ") ))) ;)) }))) (expression_statement "dcl(&ident);" (call_expression "dcl(&ident)" identifier (argument_list "(&ident)" ( (pointer_expression "&ident" & identifier) ))) ;) (if_statement "if (ident.name != (char *)0x0) {\n          declare_type(&ident);\n        }" if (parenthesized_expression "(ident.name != (char *)0x0)" ( (binary_expression "ident.name != (char *)0x0" (field_expression "ident.name" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          declare_type(&ident);\n        }" { (expression_statement "declare_type(&ident);" (call_expression "declare_type(&ident)" identifier (argument_list "(&ident)" ( (pointer_expression "&ident" & identifier) ))) ;) })) (goto_statement "goto LAB_0001d552;" goto statement_identifier ;) })) (if_statement "if (tok.type != 0x111) goto LAB_0001d540;" if (parenthesized_expression "(tok.type != 0x111)" ( (binary_expression "tok.type != 0x111" (field_expression "tok.type" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_0001d540;" goto statement_identifier ;)) (expression_statement "iVar7 = curs;" (assignment_expression "iVar7 = curs" identifier = identifier) ;) (expression_statement "pTVar5 = token_stack;" (assignment_expression "pTVar5 = token_stack" identifier = identifier) ;) (if_statement "if (curs == tos) {\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }" if (parenthesized_expression "(curs == tos)" ( (binary_expression "curs == tos" identifier == identifier) )) (compound_statement "{\nLAB_0001d4d0:\n        iVar4 = get_token();\n        pTVar5 = token_stack;\n        YVar3 = yylval;\n        iVar7 = line_num;\n        iVar6 = tos + 1;\n        pTVar1 = token_stack + tos;\n        pTVar1->type = iVar4;\n        pTVar1->token = YVar3.str;\n        pTVar1->line = iVar7;\n        tos = iVar6;\n        if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }\n        yylval.str = (char *)0x0;\n        iVar7 = curs;\n      }" { (labeled_statement "LAB_0001d4d0:\n        iVar4 = get_token();" statement_identifier : (expression_statement "iVar4 = get_token();" (assignment_expression "iVar4 = get_token()" identifier = (call_expression "get_token()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pTVar5 = token_stack;" (assignment_expression "pTVar5 = token_stack" identifier = identifier) ;) (expression_statement "YVar3 = yylval;" (assignment_expression "YVar3 = yylval" identifier = identifier) ;) (expression_statement "iVar7 = line_num;" (assignment_expression "iVar7 = line_num" identifier = identifier) ;) (expression_statement "iVar6 = tos + 1;" (assignment_expression "iVar6 = tos + 1" identifier = (binary_expression "tos + 1" identifier + number_literal)) ;) (expression_statement "pTVar1 = token_stack + tos;" (assignment_expression "pTVar1 = token_stack + tos" identifier = (binary_expression "token_stack + tos" identifier + identifier)) ;) (expression_statement "pTVar1->type = iVar4;" (assignment_expression "pTVar1->type = iVar4" (field_expression "pTVar1->type" identifier -> field_identifier) = identifier) ;) (expression_statement "pTVar1->token = YVar3.str;" (assignment_expression "pTVar1->token = YVar3.str" (field_expression "pTVar1->token" identifier -> field_identifier) = (field_expression "YVar3.str" identifier . field_identifier)) ;) (expression_statement "pTVar1->line = iVar7;" (assignment_expression "pTVar1->line = iVar7" (field_expression "pTVar1->line" identifier -> field_identifier) = identifier) ;) (expression_statement "tos = iVar6;" (assignment_expression "tos = iVar6" identifier = identifier) ;) (if_statement "if (iVar6 == token_stack_length) {\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }" if (parenthesized_expression "(iVar6 == token_stack_length)" ( (binary_expression "iVar6 == token_stack_length" identifier == identifier) )) (compound_statement "{\n          token_stack_length = iVar6 + token_stack_increase;\n          pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);\n          token_stack = pTVar5;\n        }" { (expression_statement "token_stack_length = iVar6 + token_stack_increase;" (assignment_expression "token_stack_length = iVar6 + token_stack_increase" identifier = (binary_expression "iVar6 + token_stack_increase" identifier + identifier)) ;) (expression_statement "pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc);" (assignment_expression "pTVar5 = (TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc)" identifier = (cast_expression "(TOKSTK *)xrealloc(pTVar5,token_stack_length * 0xc)" ( (type_descriptor "TOKSTK *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pTVar5,token_stack_length * 0xc)" identifier (argument_list "(pTVar5,token_stack_length * 0xc)" ( identifier , (binary_expression "token_stack_length * 0xc" identifier * number_literal) ))))) ;) (expression_statement "token_stack = pTVar5;" (assignment_expression "token_stack = pTVar5" identifier = identifier) ;) })) (expression_statement "yylval.str = (char *)0x0;" (assignment_expression "yylval.str = (char *)0x0" (field_expression "yylval.str" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = curs;" (assignment_expression "iVar7 = curs" identifier = identifier) ;) })) })) (expression_statement "identifier.storage = StaticStorage;" (assignment_expression "identifier.storage = StaticStorage" (field_expression "identifier.storage" identifier . field_identifier) = identifier) ;) (expression_statement "nexttoken();" (call_expression "nexttoken()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001d540:\n    parse_declaration(&identifier,0);" statement_identifier : (expression_statement "parse_declaration(&identifier,0);" (call_expression "parse_declaration(&identifier,0)" identifier (argument_list "(&identifier,0)" ( (pointer_expression "&identifier" & identifier) , number_literal ))) ;)) (labeled_statement "LAB_0001d552:\n    iVar7 = tos - curs;" statement_identifier : (expression_statement "iVar7 = tos - curs;" (assignment_expression "iVar7 = tos - curs" identifier = (binary_expression "tos - curs" identifier - identifier)) ;)) (if_statement "if (iVar7 < 1) {\n      tos = 0;\n    }\n    else {\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n      tos = 0;\n    }" { (expression_statement "tos = 0;" (assignment_expression "tos = 0" identifier = number_literal) ;) }) (else_clause "else {\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }" else (compound_statement "{\n      memmove(token_stack,token_stack + curs,iVar7 * 0xc);\n      tos = iVar7;\n    }" { (expression_statement "memmove(token_stack,token_stack + curs,iVar7 * 0xc);" (call_expression "memmove(token_stack,token_stack + curs,iVar7 * 0xc)" identifier (argument_list "(token_stack,token_stack + curs,iVar7 * 0xc)" ( identifier , (binary_expression "token_stack + curs" identifier + identifier) , (binary_expression "iVar7 * 0xc" identifier * number_literal) ))) ;) (expression_statement "tos = iVar7;" (assignment_expression "tos = iVar7" identifier = identifier) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_0001d3c0(void)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}\n\n" (function_definition "void FUN_0001d3c0(void)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}" primitive_type (function_declarator "FUN_0001d3c0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 local_48 [16];" type_identifier (array_declarator "local_48 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_00016376();" (call_expression "FUN_00016376()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "piVar1 = (int *)(unaff_EBP + 0x1e7fa);" (assignment_expression "piVar1 = (int *)(unaff_EBP + 0x1e7fa)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e7fa)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7fa)" ( (binary_expression "unaff_EBP + 0x1e7fa" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e846) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e846) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e846)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e846)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e846)" ( (binary_expression "unaff_EBP + 0x1e846" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e80e) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e80e) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e80e)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e80e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e80e)" ( (binary_expression "unaff_EBP + 0x1e80e" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar2 = (int *)(unaff_EBP + 0x1e84e);" (assignment_expression "piVar2 = (int *)(unaff_EBP + 0x1e84e)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e84e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e84e)" ( (binary_expression "unaff_EBP + 0x1e84e" identifier + number_literal) )))) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (expression_statement "piVar3 = (int *)(unaff_EBP + 0x1e806);" (assignment_expression "piVar3 = (int *)(unaff_EBP + 0x1e806)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e806)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e806)" ( (binary_expression "unaff_EBP + 0x1e806" identifier + number_literal) )))) ;) (expression_statement "*piVar3 = 0;" (assignment_expression "*piVar3 = 0" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar4 = (int *)(unaff_EBP + 0x1e80a);" (assignment_expression "piVar4 = (int *)(unaff_EBP + 0x1e80a)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1e80a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e80a)" ( (binary_expression "unaff_EBP + 0x1e80a" identifier + number_literal) )))) ;) (labeled_statement "LAB_0001d43c:\n  iVar9 = 0;" statement_identifier : (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;)) (if_statement "if (iVar11 == 0) goto LAB_0001d4d0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d4d0;" goto statement_identifier ;)) (labeled_statement "LAB_0001d450:\n  iVar11 = *piVar4;" statement_identifier : (expression_statement "iVar11 = *piVar4;" (assignment_expression "iVar11 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;)) (do_statement "do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );" do (compound_statement "{\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  }" { (expression_statement "piVar5 = (int *)(iVar11 + iVar9 * 0xc);" (assignment_expression "piVar5 = (int *)(iVar11 + iVar9 * 0xc)" identifier = (cast_expression "(int *)(iVar11 + iVar9 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar9 * 0xc)" ( (binary_expression "iVar11 + iVar9 * 0xc" identifier + (binary_expression "iVar9 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "iVar11 = *piVar5;" (assignment_expression "iVar11 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*piVar2 = iVar9 + 1;" (assignment_expression "*piVar2 = iVar9 + 1" (pointer_expression "*piVar2" * identifier) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "*piVar1 = iVar11;" (assignment_expression "*piVar1 = iVar11" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "*(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];" (assignment_expression "*(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1]" (pointer_expression "*(int *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(int *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(unaff_EBP + 0x1e802) = piVar5[2];" (assignment_expression "*(int *)(unaff_EBP + 0x1e802) = piVar5[2]" (pointer_expression "*(int *)(unaff_EBP + 0x1e802)" * (cast_expression "(int *)(unaff_EBP + 0x1e802)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x1379b);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x1379b)" identifier (argument_list "(piVar1,unaff_EBP + 0x1379b)" ( identifier , (binary_expression "unaff_EBP + 0x1379b" identifier + number_literal) ))) ;) (expression_statement "iVar11 = *piVar1;" (assignment_expression "iVar11 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (if_statement "if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }" { (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\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_0002ddf0();\n      }" { (expression_statement "FUN_0002ddf0();" (call_expression "FUN_0002ddf0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (if_statement "if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }" if (parenthesized_expression "(iVar11 == 0x106)" ( (binary_expression "iVar11 == 0x106" identifier == number_literal) )) (compound_statement "{\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }" { (expression_statement "local_38 = 2;" (assignment_expression "local_38 = 2" identifier = number_literal) ;) (expression_statement "FUN_00019330();" (call_expression "FUN_00019330()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001d540:\n      FUN_0001b320(local_48,0);" statement_identifier : (expression_statement "FUN_0001b320(local_48,0);" (call_expression "FUN_0001b320(local_48,0)" identifier (argument_list "(local_48,0)" ( identifier , number_literal ))) ;)) (labeled_statement "LAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;" statement_identifier : (expression_statement "iVar11 = *piVar3 - *piVar2;" (assignment_expression "iVar11 = *piVar3 - *piVar2" identifier = (binary_expression "*piVar3 - *piVar2" (pointer_expression "*piVar3" * identifier) - (pointer_expression "*piVar2" * identifier))) ;)) (if_statement "if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n        iVar11 = 0;\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" else (compound_statement "{\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" { (expression_statement "memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);" (call_expression "memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc)" identifier (argument_list "((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc)" ( (cast_expression "(void *)*piVar4" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier)) , (cast_expression "(void *)(*piVar4 + *piVar2 * 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + *piVar2 * 0xc)" ( (binary_expression "*piVar4 + *piVar2 * 0xc" (pointer_expression "*piVar4" * identifier) + (binary_expression "*piVar2 * 0xc" (pointer_expression "*piVar2" * identifier) * number_literal)) ))) , (binary_expression "iVar11 * 0xc" identifier * number_literal) ))) ;) }))) (expression_statement "*piVar3 = iVar11;" (assignment_expression "*piVar3 = iVar11" (pointer_expression "*piVar3" * identifier) = identifier) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001d43c;" goto statement_identifier ;) })) (if_statement "if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }" if (parenthesized_expression "(iVar11 < 0x107)" ( (binary_expression "iVar11 < 0x107" identifier < number_literal) )) (compound_statement "{\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }" { (if_statement "if (iVar11 == 0x105) {\n        local_38 = 1;\n      }" if (parenthesized_expression "(iVar11 == 0x105)" ( (binary_expression "iVar11 == 0x105" identifier == number_literal) )) (compound_statement "{\n        local_38 = 1;\n      }" { (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" identifier = number_literal) ;) })) (goto_statement "goto LAB_0001d540;" goto statement_identifier ;) })) (if_statement "if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }" if (parenthesized_expression "(iVar11 == 0x107)" ( (binary_expression "iVar11 == 0x107" identifier == number_literal) )) (compound_statement "{\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0xffffffff;" (assignment_expression "local_30 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" identifier = number_literal) ;) (expression_statement "FUN_00019330();" (call_expression "FUN_00019330()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" identifier = number_literal) ;) (if_statement "if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" if (parenthesized_expression "(*piVar1 == 0x108)" ( (binary_expression "*piVar1 == 0x108" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }" { (expression_statement "iVar9 = FUN_00019330();" (assignment_expression "iVar9 = FUN_00019330()" identifier = (call_expression "FUN_00019330()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *piVar2;" (assignment_expression "iVar11 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (if_statement "if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }" if (parenthesized_expression "(iVar9 == 0x104)" ( (binary_expression "iVar9 == 0x104" identifier == number_literal) )) (compound_statement "{\n          local_30 = iVar11;\n        }" { (expression_statement "local_30 = iVar11;" (assignment_expression "local_30 = iVar11" identifier = identifier) ;) })) (if_statement "if (iVar11 == 0) goto LAB_0001d802;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d802;" goto statement_identifier ;)) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n          *piVar1 = 0;\n        }" { (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;) }) (else_clause "else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" else (compound_statement "{\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" { (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" identifier = (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" identifier * number_literal) + (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*(int *)(iVar11 + -0xc)" * (cast_expression "(int *)(iVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -8)" * (cast_expression "(undefined4 *)(iVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -4)" * (cast_expression "(undefined4 *)(iVar11 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x137a6)" identifier (argument_list "(piVar1,unaff_EBP + 0x137a6)" ( identifier , (binary_expression "unaff_EBP + 0x137a6" identifier + number_literal) ))) ;) (expression_statement "FUN_0001a000();" (call_expression "FUN_0001a000()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *piVar1;" (assignment_expression "iVar11 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (if_statement "if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }" if (parenthesized_expression "(((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104))" ( (binary_expression "((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)" (parenthesized_expression "((iVar11 - 0x109U & 0xfffffff7) == 0)" ( (binary_expression "(iVar11 - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(iVar11 - 0x109U & 0xfffffff7)" ( (binary_expression "iVar11 - 0x109U & 0xfffffff7" (binary_expression "iVar11 - 0x109U" identifier - number_literal) & number_literal) )) == number_literal) )) || (parenthesized_expression "(iVar11 == 0x104)" ( (binary_expression "iVar11 == 0x104" identifier == number_literal) ))) )) (compound_statement "{\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }" { (if_statement "if (*piVar2 == 0) goto LAB_0001d802;" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_0001d802;" goto statement_identifier ;)) (expression_statement "iVar11 = *piVar2 + -1;" (assignment_expression "iVar11 = *piVar2 + -1" identifier = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar11 < 1) goto LAB_0001d6d0;" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0001d6d0;" goto statement_identifier ;)) (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" identifier = (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" identifier * number_literal) + (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*(int *)(iVar11 + -0xc)" * (cast_expression "(int *)(iVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -8)" * (cast_expression "(undefined4 *)(iVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -4)" * (cast_expression "(undefined4 *)(iVar11 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001d658;" goto statement_identifier ;) })) (if_statement "if (iVar11 == 0x28) goto LAB_0001d611;" if (parenthesized_expression "(iVar11 == 0x28)" ( (binary_expression "iVar11 == 0x28" identifier == number_literal) )) (goto_statement "goto LAB_0001d611;" goto statement_identifier ;)) (if_statement "if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }" if (parenthesized_expression "(iVar11 != 0x3b)" ( (binary_expression "iVar11 != 0x3b" identifier != number_literal) )) (compound_statement "{\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }" { (expression_statement "dcgettext(0,unaff_EBP + 0x13b0e,5);" (call_expression "dcgettext(0,unaff_EBP + 0x13b0e,5)" identifier (argument_list "(0,unaff_EBP + 0x13b0e,5)" ( number_literal , (binary_expression "unaff_EBP + 0x13b0e" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_00018870();" (call_expression "FUN_00018870()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" else (compound_statement "{\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" { (labeled_statement "LAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }" statement_identifier : (if_statement "if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }" if (parenthesized_expression "(*piVar2 == 0)" ( (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" * identifier) == number_literal) )) (compound_statement "{\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }" { (labeled_statement "LAB_0001d802:\n                    \n          FUN_000189e0();" statement_identifier : (expression_statement "FUN_000189e0();" (call_expression "FUN_000189e0()" identifier (argument_list "()" ( ))) ;)) }))) (expression_statement "iVar11 = *piVar2 + -1;" (assignment_expression "iVar11 = *piVar2 + -1" identifier = (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" * identifier) = identifier) ;) (if_statement "if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }" { (labeled_statement "LAB_0001d6d0:\n          *piVar1 = 0;" statement_identifier : (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" * identifier) = number_literal) ;)) }) (else_clause "else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" else (compound_statement "{\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" { (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" identifier = (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" identifier * number_literal) + (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" * identifier) = (pointer_expression "*(int *)(iVar11 + -0xc)" * (cast_expression "(int *)(iVar11 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0xc)" ( (binary_expression "iVar11 + -0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" * (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" ( (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" & identifier) + identifier) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -8)" * (cast_expression "(undefined4 *)(iVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -8)" ( (binary_expression "iVar11 + -8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e802)" ( (binary_expression "unaff_EBP + 0x1e802" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar11 + -4)" * (cast_expression "(undefined4 *)(iVar11 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) }))) (labeled_statement "LAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" statement_identifier : (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x137a6)" identifier (argument_list "(piVar1,unaff_EBP + 0x137a6)" ( identifier , (binary_expression "unaff_EBP + 0x137a6" identifier + number_literal) ))) ;)) }))) (expression_statement "FUN_0001bd50(&local_34);" (call_expression "FUN_0001bd50(&local_34)" identifier (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) ))) ;) (if_statement "if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0001a430(&local_34);\n      }" { (expression_statement "FUN_0001a430(&local_34);" (call_expression "FUN_0001a430(&local_34)" identifier (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) ))) ;) })) (goto_statement "goto LAB_0001d552;" goto statement_identifier ;) })) (if_statement "if (iVar11 != 0x111) goto LAB_0001d540;" if (parenthesized_expression "(iVar11 != 0x111)" ( (binary_expression "iVar11 != 0x111" identifier != number_literal) )) (goto_statement "goto LAB_0001d540;" goto statement_identifier ;)) (expression_statement "iVar9 = *piVar2;" (assignment_expression "iVar9 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (if_statement "if (iVar9 != *piVar3) goto LAB_0001d450;" if (parenthesized_expression "(iVar9 != *piVar3)" ( (binary_expression "iVar9 != *piVar3" identifier != (pointer_expression "*piVar3" * identifier)) )) (goto_statement "goto LAB_0001d450;" goto statement_identifier ;)) (labeled_statement "LAB_0001d4d0:\n    uVar10 = FUN_00016330();" statement_identifier : (expression_statement "uVar10 = FUN_00016330();" (assignment_expression "uVar10 = FUN_00016330()" identifier = (call_expression "FUN_00016330()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);" (assignment_expression "uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6da)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6da)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e6da)" ( (binary_expression "unaff_EBP + 0x1e6da" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *piVar4;" (assignment_expression "iVar11 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);" (assignment_expression "uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6f6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e6f6)" ( (binary_expression "unaff_EBP + 0x1e6f6" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *piVar3 + 1;" (assignment_expression "iVar9 = *piVar3 + 1" identifier = (binary_expression "*piVar3 + 1" (pointer_expression "*piVar3" * identifier) + number_literal)) ;) (expression_statement "puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);" (assignment_expression "puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc)" identifier = (cast_expression "(undefined4 *)(iVar11 + *piVar3 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + *piVar3 * 0xc)" ( (binary_expression "iVar11 + *piVar3 * 0xc" identifier + (binary_expression "*piVar3 * 0xc" (pointer_expression "*piVar3" * identifier) * number_literal)) )))) ;) (expression_statement "*puVar6 = uVar10;" (assignment_expression "*puVar6 = uVar10" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6[1] = uVar8;" (assignment_expression "puVar6[1] = uVar8" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = uVar7;" (assignment_expression "puVar6[2] = uVar7" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar3 = iVar9;" (assignment_expression "*piVar3 = iVar9" (pointer_expression "*piVar3" * identifier) = identifier) ;) (if_statement "if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }" if (parenthesized_expression "(iVar9 == *(int *)(unaff_EBP + 0x1e33a))" ( (binary_expression "iVar9 == *(int *)(unaff_EBP + 0x1e33a)" identifier == (pointer_expression "*(int *)(unaff_EBP + 0x1e33a)" * (cast_expression "(int *)(unaff_EBP + 0x1e33a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e33a)" ( (binary_expression "unaff_EBP + 0x1e33a" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }" { (expression_statement "iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);" (assignment_expression "iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336)" identifier = (binary_expression "iVar9 + *(int *)(unaff_EBP + 0x1e336)" identifier + (pointer_expression "*(int *)(unaff_EBP + 0x1e336)" * (cast_expression "(int *)(unaff_EBP + 0x1e336)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e336)" ( (binary_expression "unaff_EBP + 0x1e336" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(unaff_EBP + 0x1e33a) = iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x1e33a) = iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x1e33a)" * (cast_expression "(int *)(unaff_EBP + 0x1e33a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e33a)" ( (binary_expression "unaff_EBP + 0x1e33a" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);" (assignment_expression "iVar11 = FUN_00027730(iVar11,iVar9 * 0xc)" identifier = (call_expression "FUN_00027730(iVar11,iVar9 * 0xc)" identifier (argument_list "(iVar11,iVar9 * 0xc)" ( identifier , (binary_expression "iVar9 * 0xc" identifier * number_literal) )))) ;) (expression_statement "*piVar4 = iVar11;" (assignment_expression "*piVar4 = iVar11" (pointer_expression "*piVar4" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6f6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e6f6)" ( (binary_expression "unaff_EBP + 0x1e6f6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = *piVar2;" (assignment_expression "iVar9 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (pointer_expression * IDENT) * LIT)) ))) , (binary_expression IDENT * LIT) ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_0001d3c0(void)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_0001d3c0(void)" (identifier "FUN_0001d3c0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int *piVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int unaff_EBP;\n  int iVar11;\n  int in_GS_OFFSET;\n  undefined1 local_48 [16];\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  FUN_00016376();\n  iVar11 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar1 = (int *)(unaff_EBP + 0x1e7fa);\n  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;\n  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;\n  piVar2 = (int *)(unaff_EBP + 0x1e84e);\n  *piVar2 = 0;\n  piVar3 = (int *)(unaff_EBP + 0x1e806);\n  *piVar3 = 0;\n  piVar4 = (int *)(unaff_EBP + 0x1e80a);\nLAB_0001d43c:\n  iVar9 = 0;\n  if (iVar11 == 0) goto LAB_0001d4d0;\nLAB_0001d450:\n  iVar11 = *piVar4;\n  do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined1 local_48 [16];" (type_identifier "undefined1") (array_declarator "local_48 [16]" (identifier "local_48") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "FUN_00016376();" (call_expression "FUN_00016376()" (identifier "FUN_00016376") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "piVar1 = (int *)(unaff_EBP + 0x1e7fa);" (assignment_expression "piVar1 = (int *)(unaff_EBP + 0x1e7fa)" (identifier "piVar1") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1e7fa)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7fa)" (( "(") (binary_expression "unaff_EBP + 0x1e7fa" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7fa")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e846) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e846) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e846)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e846)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e846)" (( "(") (binary_expression "unaff_EBP + 0x1e846" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e846")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e80e) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e80e) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e80e)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e80e)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e80e)" (( "(") (binary_expression "unaff_EBP + 0x1e80e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e80e")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2 = (int *)(unaff_EBP + 0x1e84e);" (assignment_expression "piVar2 = (int *)(unaff_EBP + 0x1e84e)" (identifier "piVar2") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1e84e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e84e)" (( "(") (binary_expression "unaff_EBP + 0x1e84e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e84e")) () ")")))) (; ";")) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3 = (int *)(unaff_EBP + 0x1e806);" (assignment_expression "piVar3 = (int *)(unaff_EBP + 0x1e806)" (identifier "piVar3") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1e806)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e806)" (( "(") (binary_expression "unaff_EBP + 0x1e806" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e806")) () ")")))) (; ";")) (expression_statement "*piVar3 = 0;" (assignment_expression "*piVar3 = 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4 = (int *)(unaff_EBP + 0x1e80a);" (assignment_expression "piVar4 = (int *)(unaff_EBP + 0x1e80a)" (identifier "piVar4") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1e80a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e80a)" (( "(") (binary_expression "unaff_EBP + 0x1e80a" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e80a")) () ")")))) (; ";")) (labeled_statement "LAB_0001d43c:\n  iVar9 = 0;" (statement_identifier "LAB_0001d43c") (: ":") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (iVar11 == 0) goto LAB_0001d4d0;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d4d0;" (goto "goto") (statement_identifier "LAB_0001d4d0") (; ";"))) (labeled_statement "LAB_0001d450:\n  iVar11 = *piVar4;" (statement_identifier "LAB_0001d450") (: ":") (expression_statement "iVar11 = *piVar4;" (assignment_expression "iVar11 = *piVar4" (identifier "iVar11") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";"))) (do_statement "do {\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  } while( true );" (do "do") (compound_statement "{\n    piVar5 = (int *)(iVar11 + iVar9 * 0xc);\n    iVar11 = *piVar5;\n    *piVar2 = iVar9 + 1;\n    *piVar1 = iVar11;\n    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];\n    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];\n    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);\n    iVar11 = *piVar1;\n    if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }\n    local_38 = 0;\n    if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }\n    if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }\n    if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }\n    if (iVar11 != 0x111) goto LAB_0001d540;\n    iVar9 = *piVar2;\n    if (iVar9 != *piVar3) goto LAB_0001d450;\nLAB_0001d4d0:\n    uVar10 = FUN_00016330();\n    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);\n    iVar11 = *piVar4;\n    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);\n    iVar9 = *piVar3 + 1;\n    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);\n    *puVar6 = uVar10;\n    puVar6[1] = uVar8;\n    puVar6[2] = uVar7;\n    *piVar3 = iVar9;\n    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }\n    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;\n    iVar9 = *piVar2;\n  }" ({ "{") (expression_statement "piVar5 = (int *)(iVar11 + iVar9 * 0xc);" (assignment_expression "piVar5 = (int *)(iVar11 + iVar9 * 0xc)" (identifier "piVar5") (= "=") (cast_expression "(int *)(iVar11 + iVar9 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + iVar9 * 0xc)" (( "(") (binary_expression "iVar11 + iVar9 * 0xc" (identifier "iVar11") (+ "+") (binary_expression "iVar9 * 0xc" (identifier "iVar9") (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "iVar11 = *piVar5;" (assignment_expression "iVar11 = *piVar5" (identifier "iVar11") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "*piVar2 = iVar9 + 1;" (assignment_expression "*piVar2 = iVar9 + 1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar1 = iVar11;" (assignment_expression "*piVar1 = iVar11" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];" (assignment_expression "*(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1]" (pointer_expression "*(int *)(&DAT_0001e7fe + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_0001e7fe + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" (( "(") (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" (& "&") (identifier "DAT_0001e7fe")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x1e802) = piVar5[2];" (assignment_expression "*(int *)(unaff_EBP + 0x1e802) = piVar5[2]" (pointer_expression "*(int *)(unaff_EBP + 0x1e802)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x1e802)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e802)" (( "(") (binary_expression "unaff_EBP + 0x1e802" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e802")) () ")")))) (= "=") (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x1379b);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x1379b)" (identifier "FUN_00018a20") (argument_list "(piVar1,unaff_EBP + 0x1379b)" (( "(") (identifier "piVar1") (, ",") (binary_expression "unaff_EBP + 0x1379b" (identifier "unaff_EBP") (+ "+") (number_literal "0x1379b")) () ")"))) (; ";")) (expression_statement "iVar11 = *piVar1;" (assignment_expression "iVar11 = *piVar1" (identifier "iVar11") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (if_statement "if (iVar11 == 0) {\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\n      }\n      return;\n    }" ({ "{") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n        FUN_0002ddf0();\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_0002ddf0();\n      }" ({ "{") (expression_statement "FUN_0002ddf0();" (call_expression "FUN_0002ddf0()" (identifier "FUN_0002ddf0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar11 == 0x106) {\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0x106)" (( "(") (binary_expression "iVar11 == 0x106" (identifier "iVar11") (== "==") (number_literal "0x106")) () ")")) (compound_statement "{\n      local_38 = 2;\n      FUN_00019330();\nLAB_0001d540:\n      FUN_0001b320(local_48,0);\nLAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;\n      if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }\n      *piVar3 = iVar11;\n      *piVar2 = 0;\n      goto LAB_0001d43c;\n    }" ({ "{") (expression_statement "local_38 = 2;" (assignment_expression "local_38 = 2" (identifier "local_38") (= "=") (number_literal "2")) (; ";")) (expression_statement "FUN_00019330();" (call_expression "FUN_00019330()" (identifier "FUN_00019330") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0001d540:\n      FUN_0001b320(local_48,0);" (statement_identifier "LAB_0001d540") (: ":") (expression_statement "FUN_0001b320(local_48,0);" (call_expression "FUN_0001b320(local_48,0)" (identifier "FUN_0001b320") (argument_list "(local_48,0)" (( "(") (identifier "local_48") (, ",") (number_literal "0") () ")"))) (; ";"))) (labeled_statement "LAB_0001d552:\n      iVar11 = *piVar3 - *piVar2;" (statement_identifier "LAB_0001d552") (: ":") (expression_statement "iVar11 = *piVar3 - *piVar2;" (assignment_expression "iVar11 = *piVar3 - *piVar2" (identifier "iVar11") (= "=") (binary_expression "*piVar3 - *piVar2" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (- "-") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (; ";"))) (if_statement "if (iVar11 < 1) {\n        iVar11 = 0;\n      }\n      else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        iVar11 = 0;\n      }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" (else "else") (compound_statement "{\n        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);\n      }" ({ "{") (expression_statement "memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);" (call_expression "memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc)" (identifier "memmove") (argument_list "((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc)" (( "(") (cast_expression "(void *)*piVar4" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (, ",") (cast_expression "(void *)(*piVar4 + *piVar2 * 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar4 + *piVar2 * 0xc)" (( "(") (binary_expression "*piVar4 + *piVar2 * 0xc" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (binary_expression "*piVar2 * 0xc" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (* "*") (number_literal "0xc"))) () ")"))) (, ",") (binary_expression "iVar11 * 0xc" (identifier "iVar11") (* "*") (number_literal "0xc")) () ")"))) (; ";")) (} "}")))) (expression_statement "*piVar3 = iVar11;" (assignment_expression "*piVar3 = iVar11" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001d43c;" (goto "goto") (statement_identifier "LAB_0001d43c") (; ";")) (} "}"))) (if_statement "if (iVar11 < 0x107) {\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }" (if "if") (parenthesized_expression "(iVar11 < 0x107)" (( "(") (binary_expression "iVar11 < 0x107" (identifier "iVar11") (< "<") (number_literal "0x107")) () ")")) (compound_statement "{\n      if (iVar11 == 0x105) {\n        local_38 = 1;\n      }\n      goto LAB_0001d540;\n    }" ({ "{") (if_statement "if (iVar11 == 0x105) {\n        local_38 = 1;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0x105)" (( "(") (binary_expression "iVar11 == 0x105" (identifier "iVar11") (== "==") (number_literal "0x105")) () ")")) (compound_statement "{\n        local_38 = 1;\n      }" ({ "{") (expression_statement "local_38 = 1;" (assignment_expression "local_38 = 1" (identifier "local_38") (= "=") (number_literal "1")) (; ";")) (} "}"))) (goto_statement "goto LAB_0001d540;" (goto "goto") (statement_identifier "LAB_0001d540") (; ";")) (} "}"))) (if_statement "if (iVar11 == 0x107) {\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0x107)" (( "(") (binary_expression "iVar11 == 0x107" (identifier "iVar11") (== "==") (number_literal "0x107")) () ")")) (compound_statement "{\n      local_34 = 0;\n      local_30 = 0xffffffff;\n      local_2c = 0xffffffff;\n      local_28 = 0xffffffff;\n      local_24 = 4;\n      FUN_00019330();\n      local_30 = -1;\n      if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }\n      FUN_0001bd50(&local_34);\n      if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }\n      goto LAB_0001d552;\n    }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0xffffffff;" (assignment_expression "local_30 = 0xffffffff" (identifier "local_30") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" (identifier "local_2c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" (identifier "local_28") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_24 = 4;" (assignment_expression "local_24 = 4" (identifier "local_24") (= "=") (number_literal "4")) (; ";")) (expression_statement "FUN_00019330();" (call_expression "FUN_00019330()" (identifier "FUN_00019330") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = -1;" (assignment_expression "local_30 = -1" (identifier "local_30") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (*piVar1 == 0x108) {\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }\n      else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" (if "if") (parenthesized_expression "(*piVar1 == 0x108)" (( "(") (binary_expression "*piVar1 == 0x108" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0x108")) () ")")) (compound_statement "{\n        iVar9 = FUN_00019330();\n        iVar11 = *piVar2;\n        if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }\n        if (iVar11 == 0) goto LAB_0001d802;\n        iVar11 = iVar11 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n        FUN_0001a000();\n        iVar11 = *piVar1;\n        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }\n        if (iVar11 == 0x28) goto LAB_0001d611;\n        if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }\n      }" ({ "{") (expression_statement "iVar9 = FUN_00019330();" (assignment_expression "iVar9 = FUN_00019330()" (identifier "iVar9") (= "=") (call_expression "FUN_00019330()" (identifier "FUN_00019330") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar11 = *piVar2;" (assignment_expression "iVar11 = *piVar2" (identifier "iVar11") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (if_statement "if (iVar9 == 0x104) {\n          local_30 = iVar11;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0x104)" (( "(") (binary_expression "iVar9 == 0x104" (identifier "iVar9") (== "==") (number_literal "0x104")) () ")")) (compound_statement "{\n          local_30 = iVar11;\n        }" ({ "{") (expression_statement "local_30 = iVar11;" (assignment_expression "local_30 = iVar11" (identifier "local_30") (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (if_statement "if (iVar11 == 0) goto LAB_0001d802;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d802;" (goto "goto") (statement_identifier "LAB_0001d802") (; ";"))) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 < 1) {\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          *piVar1 = 0;\n        }" ({ "{") (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" (else "else") (compound_statement "{\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" ({ "{") (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" (identifier "iVar11") (= "=") (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" (identifier "iVar11") (* "*") (number_literal "0xc")) (+ "+") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (pointer_expression "*(int *)(iVar11 + -0xc)" (* "*") (cast_expression "(int *)(iVar11 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0xc)" (( "(") (binary_expression "iVar11 + -0xc" (identifier "iVar11") (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" (* "*") (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" (( "(") (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" (& "&") (identifier "DAT_0001e7fe")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar11 + -8)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -8)" (( "(") (binary_expression "iVar11 + -8" (identifier "iVar11") (+ "+") (number_literal "-8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e802)" (( "(") (binary_expression "unaff_EBP + 0x1e802" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e802")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar11 + -4)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x137a6)" (identifier "FUN_00018a20") (argument_list "(piVar1,unaff_EBP + 0x137a6)" (( "(") (identifier "piVar1") (, ",") (binary_expression "unaff_EBP + 0x137a6" (identifier "unaff_EBP") (+ "+") (number_literal "0x137a6")) () ")"))) (; ";")) (expression_statement "FUN_0001a000();" (call_expression "FUN_0001a000()" (identifier "FUN_0001a000") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = *piVar1;" (assignment_expression "iVar11 = *piVar1" (identifier "iVar11") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (if_statement "if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }" (if "if") (parenthesized_expression "(((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104))" (( "(") (binary_expression "((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)" (parenthesized_expression "((iVar11 - 0x109U & 0xfffffff7) == 0)" (( "(") (binary_expression "(iVar11 - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(iVar11 - 0x109U & 0xfffffff7)" (( "(") (binary_expression "iVar11 - 0x109U & 0xfffffff7" (binary_expression "iVar11 - 0x109U" (identifier "iVar11") (- "-") (number_literal "0x109U")) (& "&") (number_literal "0xfffffff7")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar11 == 0x104)" (( "(") (binary_expression "iVar11 == 0x104" (identifier "iVar11") (== "==") (number_literal "0x104")) () ")"))) () ")")) (compound_statement "{\n          if (*piVar2 == 0) goto LAB_0001d802;\n          iVar11 = *piVar2 + -1;\n          *piVar2 = iVar11;\n          if (iVar11 < 1) goto LAB_0001d6d0;\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n          goto LAB_0001d658;\n        }" ({ "{") (if_statement "if (*piVar2 == 0) goto LAB_0001d802;" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d802;" (goto "goto") (statement_identifier "LAB_0001d802") (; ";"))) (expression_statement "iVar11 = *piVar2 + -1;" (assignment_expression "iVar11 = *piVar2 + -1" (identifier "iVar11") (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 < 1) goto LAB_0001d6d0;" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0001d6d0;" (goto "goto") (statement_identifier "LAB_0001d6d0") (; ";"))) (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" (identifier "iVar11") (= "=") (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" (identifier "iVar11") (* "*") (number_literal "0xc")) (+ "+") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (pointer_expression "*(int *)(iVar11 + -0xc)" (* "*") (cast_expression "(int *)(iVar11 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0xc)" (( "(") (binary_expression "iVar11 + -0xc" (identifier "iVar11") (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" (* "*") (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" (( "(") (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" (& "&") (identifier "DAT_0001e7fe")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar11 + -8)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -8)" (( "(") (binary_expression "iVar11 + -8" (identifier "iVar11") (+ "+") (number_literal "-8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e802)" (( "(") (binary_expression "unaff_EBP + 0x1e802" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e802")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar11 + -4)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001d658;" (goto "goto") (statement_identifier "LAB_0001d658") (; ";")) (} "}"))) (if_statement "if (iVar11 == 0x28) goto LAB_0001d611;" (if "if") (parenthesized_expression "(iVar11 == 0x28)" (( "(") (binary_expression "iVar11 == 0x28" (identifier "iVar11") (== "==") (number_literal "0x28")) () ")")) (goto_statement "goto LAB_0001d611;" (goto "goto") (statement_identifier "LAB_0001d611") (; ";"))) (if_statement "if (iVar11 != 0x3b) {\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }" (if "if") (parenthesized_expression "(iVar11 != 0x3b)" (( "(") (binary_expression "iVar11 != 0x3b" (identifier "iVar11") (!= "!=") (number_literal "0x3b")) () ")")) (compound_statement "{\n          dcgettext(0,unaff_EBP + 0x13b0e,5);\n          FUN_00018870();\n        }" ({ "{") (expression_statement "dcgettext(0,unaff_EBP + 0x13b0e,5);" (call_expression "dcgettext(0,unaff_EBP + 0x13b0e,5)" (identifier "dcgettext") (argument_list "(0,unaff_EBP + 0x13b0e,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EBP + 0x13b0e" (identifier "unaff_EBP") (+ "+") (number_literal "0x13b0e")) (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_00018870();" (call_expression "FUN_00018870()" (identifier "FUN_00018870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" (else "else") (compound_statement "{\nLAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }\n        iVar11 = *piVar2 + -1;\n        *piVar2 = iVar11;\n        if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }\nLAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);\n      }" ({ "{") (labeled_statement "LAB_0001d611:\n        if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }" (statement_identifier "LAB_0001d611") (: ":") (if_statement "if (*piVar2 == 0) {\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }" (if "if") (parenthesized_expression "(*piVar2 == 0)" (( "(") (binary_expression "*piVar2 == 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001d802:\n                    \n          FUN_000189e0();\n        }" ({ "{") (labeled_statement "LAB_0001d802:\n                    \n          FUN_000189e0();" (statement_identifier "LAB_0001d802") (: ":") (expression_statement "FUN_000189e0();" (call_expression "FUN_000189e0()" (identifier "FUN_000189e0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))) (expression_statement "iVar11 = *piVar2 + -1;" (assignment_expression "iVar11 = *piVar2 + -1" (identifier "iVar11") (= "=") (binary_expression "*piVar2 + -1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*piVar2 = iVar11;" (assignment_expression "*piVar2 = iVar11" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 < 1) {\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }\n        else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0001d6d0:\n          *piVar1 = 0;\n        }" ({ "{") (labeled_statement "LAB_0001d6d0:\n          *piVar1 = 0;" (statement_identifier "LAB_0001d6d0") (: ":") (expression_statement "*piVar1 = 0;" (assignment_expression "*piVar1 = 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" (else "else") (compound_statement "{\n          iVar11 = iVar11 * 0xc + *piVar4;\n          *piVar1 = *(int *)(iVar11 + -0xc);\n          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);\n          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);\n        }" ({ "{") (expression_statement "iVar11 = iVar11 * 0xc + *piVar4;" (assignment_expression "iVar11 = iVar11 * 0xc + *piVar4" (identifier "iVar11") (= "=") (binary_expression "iVar11 * 0xc + *piVar4" (binary_expression "iVar11 * 0xc" (identifier "iVar11") (* "*") (number_literal "0xc")) (+ "+") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (expression_statement "*piVar1 = *(int *)(iVar11 + -0xc);" (assignment_expression "*piVar1 = *(int *)(iVar11 + -0xc)" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (pointer_expression "*(int *)(iVar11 + -0xc)" (* "*") (cast_expression "(int *)(iVar11 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0xc)" (( "(") (binary_expression "iVar11 + -0xc" (identifier "iVar11") (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);" (assignment_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8)" (pointer_expression "*(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" (* "*") (cast_expression "(undefined4 *)(&DAT_0001e7fe + unaff_EBP)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0001e7fe + unaff_EBP)" (( "(") (binary_expression "&DAT_0001e7fe + unaff_EBP" (pointer_expression "&DAT_0001e7fe" (& "&") (identifier "DAT_0001e7fe")) (+ "+") (identifier "unaff_EBP")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar11 + -8)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -8)" (( "(") (binary_expression "iVar11 + -8" (identifier "iVar11") (+ "+") (number_literal "-8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4)" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e802)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e802)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e802)" (( "(") (binary_expression "unaff_EBP + 0x1e802" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e802")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar11 + -4)" (* "*") (cast_expression "(undefined4 *)(iVar11 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_0001d658:\n        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" (statement_identifier "LAB_0001d658") (: ":") (expression_statement "FUN_00018a20(piVar1,unaff_EBP + 0x137a6);" (call_expression "FUN_00018a20(piVar1,unaff_EBP + 0x137a6)" (identifier "FUN_00018a20") (argument_list "(piVar1,unaff_EBP + 0x137a6)" (( "(") (identifier "piVar1") (, ",") (binary_expression "unaff_EBP + 0x137a6" (identifier "unaff_EBP") (+ "+") (number_literal "0x137a6")) () ")"))) (; ";"))) (} "}")))) (expression_statement "FUN_0001bd50(&local_34);" (call_expression "FUN_0001bd50(&local_34)" (identifier "FUN_0001bd50") (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (if_statement "if (local_34 != 0) {\n        FUN_0001a430(&local_34);\n      }" (if "if") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0001a430(&local_34);\n      }" ({ "{") (expression_statement "FUN_0001a430(&local_34);" (call_expression "FUN_0001a430(&local_34)" (identifier "FUN_0001a430") (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001d552;" (goto "goto") (statement_identifier "LAB_0001d552") (; ";")) (} "}"))) (if_statement "if (iVar11 != 0x111) goto LAB_0001d540;" (if "if") (parenthesized_expression "(iVar11 != 0x111)" (( "(") (binary_expression "iVar11 != 0x111" (identifier "iVar11") (!= "!=") (number_literal "0x111")) () ")")) (goto_statement "goto LAB_0001d540;" (goto "goto") (statement_identifier "LAB_0001d540") (; ";"))) (expression_statement "iVar9 = *piVar2;" (assignment_expression "iVar9 = *piVar2" (identifier "iVar9") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (if_statement "if (iVar9 != *piVar3) goto LAB_0001d450;" (if "if") (parenthesized_expression "(iVar9 != *piVar3)" (( "(") (binary_expression "iVar9 != *piVar3" (identifier "iVar9") (!= "!=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) () ")")) (goto_statement "goto LAB_0001d450;" (goto "goto") (statement_identifier "LAB_0001d450") (; ";"))) (labeled_statement "LAB_0001d4d0:\n    uVar10 = FUN_00016330();" (statement_identifier "LAB_0001d4d0") (: ":") (expression_statement "uVar10 = FUN_00016330();" (assignment_expression "uVar10 = FUN_00016330()" (identifier "uVar10") (= "=") (call_expression "FUN_00016330()" (identifier "FUN_00016330") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);" (assignment_expression "uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6da)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6da)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e6da)" (( "(") (binary_expression "unaff_EBP + 0x1e6da" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e6da")) () ")"))))) (; ";")) (expression_statement "iVar11 = *piVar4;" (assignment_expression "iVar11 = *piVar4" (identifier "iVar11") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);" (assignment_expression "uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6f6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e6f6)" (( "(") (binary_expression "unaff_EBP + 0x1e6f6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e6f6")) () ")"))))) (; ";")) (expression_statement "iVar9 = *piVar3 + 1;" (assignment_expression "iVar9 = *piVar3 + 1" (identifier "iVar9") (= "=") (binary_expression "*piVar3 + 1" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);" (assignment_expression "puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(iVar11 + *piVar3 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + *piVar3 * 0xc)" (( "(") (binary_expression "iVar11 + *piVar3 * 0xc" (identifier "iVar11") (+ "+") (binary_expression "*piVar3 * 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "*puVar6 = uVar10;" (assignment_expression "*puVar6 = uVar10" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar6[1] = uVar8;" (assignment_expression "puVar6[1] = uVar8" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar6[2] = uVar7;" (assignment_expression "puVar6[2] = uVar7" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*piVar3 = iVar9;" (assignment_expression "*piVar3 = iVar9" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }" (if "if") (parenthesized_expression "(iVar9 == *(int *)(unaff_EBP + 0x1e33a))" (( "(") (binary_expression "iVar9 == *(int *)(unaff_EBP + 0x1e33a)" (identifier "iVar9") (== "==") (pointer_expression "*(int *)(unaff_EBP + 0x1e33a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x1e33a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e33a)" (( "(") (binary_expression "unaff_EBP + 0x1e33a" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e33a")) () ")"))))) () ")")) (compound_statement "{\n      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);\n      *(int *)(unaff_EBP + 0x1e33a) = iVar9;\n      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);\n      *piVar4 = iVar11;\n    }" ({ "{") (expression_statement "iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);" (assignment_expression "iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336)" (identifier "iVar9") (= "=") (binary_expression "iVar9 + *(int *)(unaff_EBP + 0x1e336)" (identifier "iVar9") (+ "+") (pointer_expression "*(int *)(unaff_EBP + 0x1e336)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x1e336)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e336)" (( "(") (binary_expression "unaff_EBP + 0x1e336" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e336")) () ")")))))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 0x1e33a) = iVar9;" (assignment_expression "*(int *)(unaff_EBP + 0x1e33a) = iVar9" (pointer_expression "*(int *)(unaff_EBP + 0x1e33a)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x1e33a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e33a)" (( "(") (binary_expression "unaff_EBP + 0x1e33a" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e33a")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);" (assignment_expression "iVar11 = FUN_00027730(iVar11,iVar9 * 0xc)" (identifier "iVar11") (= "=") (call_expression "FUN_00027730(iVar11,iVar9 * 0xc)" (identifier "FUN_00027730") (argument_list "(iVar11,iVar9 * 0xc)" (( "(") (identifier "iVar11") (, ",") (binary_expression "iVar9 * 0xc" (identifier "iVar9") (* "*") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "*piVar4 = iVar11;" (assignment_expression "*piVar4 = iVar11" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + 0x1e6f6)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x1e6f6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e6f6)" (( "(") (binary_expression "unaff_EBP + 0x1e6f6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e6f6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = *piVar2;" (assignment_expression "iVar9 = *piVar2" (identifier "iVar9") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

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

int function_1(void)

{
  type_1 *pTVar1;
  int var_6;
  type_2 YVar3;
  int iVar4;
  type_1 *var_4;
  char *msg;
  int var_18;
  int var_3;
  int var_1;
  type_3 identifier;
  type_3 ident;
  
  var_6 = *(int *)(var_1 + 0x14);
  level = 0;
  caller = (type_4 *)0x0;
  var_2 = 0;
  do {
    var_9 = 0;
    var_3 = 0;
    var_4 = var_17;
    if (var_2 == 0) goto LAB_0001d4d0;
    while( true ) {
      var_9 = var_3 + 1;
      var_4 = var_4 + var_3;
      tok.type = var_4->type;
      tok.token = var_4->token;
      tok.line = var_4->line;
      var_5(&tok,"next token");
      if (tok.type == 0) {
        if (var_6 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
          var_7();
        }
        return tok.type;
      }
      identifier.storage = ExternStorage;
      if (tok.type == 0x106) break;
      if (tok.type < 0x107) {
        if (tok.type == 0x105) {
          identifier.storage = ExplicitExternStorage;
        }
        goto LAB_0001d540;
      }
      if (tok.type == 0x107) {
        ident.name = (char *)0x0;
        ident.type_end = -1;
        ident.parmcnt = -1;
        ident.line = -1;
        ident.storage = AnyStorage;
        var_8();
        ident.type_end = -1;
        if (tok.type == 0x108) {
          var_3 = var_8();
          if (var_3 == 0x104) {
            ident.type_end = var_9;
          }
          if (var_9 == 0) goto LAB_0001d802;
          if (var_9 + -1 < 1) {
            tok.type = 0;
          }
          else {
            tok.type = var_17[var_9 + -2].type;
            tok.token = var_17[var_9 + -2].token;
            tok.line = var_17[var_9 + -2].line;
          }
          var_9 = var_9 + -1;
          var_5(&tok,"putback");
          var_10();
          if (((tok.type - 0x109U & 0xfffffff7) == 0) || (tok.type == 0x104)) {
            if (var_9 == 0) goto LAB_0001d802;
            var_3 = var_9 + -1;
            if (var_3 < 1) goto LAB_0001d6d0;
            tok.type = var_17[var_9 + -2].type;
            tok.token = var_17[var_9 + -2].token;
            tok.line = var_17[var_9 + -2].line;
            var_9 = var_3;
            goto LAB_0001d658;
          }
          if (tok.type == 0x28) goto LAB_0001d611;
          if (tok.type != 0x3b) {
            msg = (char *)var_11(0,"missing `;\' after struct declaration",5);
            var_12(msg,&tok);
          }
        }
        else {
LAB_0001d611:
          if (var_9 == 0) {
LAB_0001d802:
                    /* WARNING: Subroutine does not return */
            var_13();
          }
          var_3 = var_9 + -1;
          if (var_3 < 1) {
LAB_0001d6d0:
            var_9 = var_3;
            tok.type = 0;
          }
          else {
            tok.type = var_17[var_9 + -2].type;
            tok.token = var_17[var_9 + -2].token;
            tok.line = var_17[var_9 + -2].line;
            var_9 = var_3;
          }
LAB_0001d658:
          var_5(&tok,"putback");
        }
        var_14(&ident);
        if (ident.name != (char *)0x0) {
          var_15(&ident);
        }
        goto LAB_0001d552;
      }
      if (tok.type != 0x111) goto LAB_0001d540;
      var_3 = var_9;
      var_4 = var_17;
      if (var_9 == var_2) {
LAB_0001d4d0:
        iVar4 = var_16();
        var_4 = var_17;
        YVar3 = yylval;
        var_3 = line_num;
        var_18 = var_2 + 1;
        pTVar1 = var_17 + var_2;
        pTVar1->type = iVar4;
        pTVar1->token = YVar3.str;
        pTVar1->line = var_3;
        var_2 = var_18;
        if (var_18 == var_19) {
          var_19 = var_18 + var_20;
          var_4 = (type_1 *)var_21(var_4,var_19 * 0xc);
          var_17 = var_4;
        }
        yylval.str = (char *)0x0;
        var_3 = var_9;
      }
    }
    identifier.storage = StaticStorage;
    var_8();
LAB_0001d540:
    var_22(&identifier,0);
LAB_0001d552:
    var_3 = var_2 - var_9;
    if (var_3 < 1) {
      var_2 = 0;
    }
    else {
      var_23(var_17,var_17 + var_9,var_3 * 0xc);
      var_2 = var_3;
    }
  } while( true );
}


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

void MASKED(void)

{
  int *piVar1;
  int *piVar2;
  int *piVar3;
  int *piVar4;
  int *piVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  undefined4 uVar10;
  int unaff_EBP;
  int iVar11;
  int in_GS_OFFSET;
  undefined1 local_48 [16];
  undefined4 local_38;
  int local_34;
  int local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  
  FUN_00016376();
  iVar11 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  piVar1 = (int *)(unaff_EBP + 0x1e7fa);
  *(undefined4 *)(unaff_EBP + 0x1e846) = 0;
  *(undefined4 *)(unaff_EBP + 0x1e80e) = 0;
  piVar2 = (int *)(unaff_EBP + 0x1e84e);
  *piVar2 = 0;
  piVar3 = (int *)(unaff_EBP + 0x1e806);
  *piVar3 = 0;
  piVar4 = (int *)(unaff_EBP + 0x1e80a);
LAB_0001d43c:
  iVar9 = 0;
  if (iVar11 == 0) goto LAB_0001d4d0;
LAB_0001d450:
  iVar11 = *piVar4;
  do {
    piVar5 = (int *)(iVar11 + iVar9 * 0xc);
    iVar11 = *piVar5;
    *piVar2 = iVar9 + 1;
    *piVar1 = iVar11;
    *(int *)(&DAT_0001e7fe + unaff_EBP) = piVar5[1];
    *(int *)(unaff_EBP + 0x1e802) = piVar5[2];
    FUN_00018a20(piVar1,unaff_EBP + 0x1379b);
    iVar11 = *piVar1;
    if (iVar11 == 0) {
      if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
        FUN_0002ddf0();
      }
      return;
    }
    local_38 = 0;
    if (iVar11 == 0x106) {
      local_38 = 2;
      FUN_00019330();
LAB_0001d540:
      FUN_0001b320(local_48,0);
LAB_0001d552:
      iVar11 = *piVar3 - *piVar2;
      if (iVar11 < 1) {
        iVar11 = 0;
      }
      else {
        memmove((void *)*piVar4,(void *)(*piVar4 + *piVar2 * 0xc),iVar11 * 0xc);
      }
      *piVar3 = iVar11;
      *piVar2 = 0;
      goto LAB_0001d43c;
    }
    if (iVar11 < 0x107) {
      if (iVar11 == 0x105) {
        local_38 = 1;
      }
      goto LAB_0001d540;
    }
    if (iVar11 == 0x107) {
      local_34 = 0;
      local_30 = 0xffffffff;
      local_2c = 0xffffffff;
      local_28 = 0xffffffff;
      local_24 = 4;
      FUN_00019330();
      local_30 = -1;
      if (*piVar1 == 0x108) {
        iVar9 = FUN_00019330();
        iVar11 = *piVar2;
        if (iVar9 == 0x104) {
          local_30 = iVar11;
        }
        if (iVar11 == 0) goto LAB_0001d802;
        iVar11 = iVar11 + -1;
        *piVar2 = iVar11;
        if (iVar11 < 1) {
          *piVar1 = 0;
        }
        else {
          iVar11 = iVar11 * 0xc + *piVar4;
          *piVar1 = *(int *)(iVar11 + -0xc);
          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);
          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);
        }
        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);
        FUN_0001a000();
        iVar11 = *piVar1;
        if (((iVar11 - 0x109U & 0xfffffff7) == 0) || (iVar11 == 0x104)) {
          if (*piVar2 == 0) goto LAB_0001d802;
          iVar11 = *piVar2 + -1;
          *piVar2 = iVar11;
          if (iVar11 < 1) goto LAB_0001d6d0;
          iVar11 = iVar11 * 0xc + *piVar4;
          *piVar1 = *(int *)(iVar11 + -0xc);
          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);
          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);
          goto LAB_0001d658;
        }
        if (iVar11 == 0x28) goto LAB_0001d611;
        if (iVar11 != 0x3b) {
          dcgettext(0,unaff_EBP + 0x13b0e,5);
          FUN_00018870();
        }
      }
      else {
LAB_0001d611:
        if (*piVar2 == 0) {
LAB_0001d802:
                    /* WARNING: Subroutine does not return */
          FUN_000189e0();
        }
        iVar11 = *piVar2 + -1;
        *piVar2 = iVar11;
        if (iVar11 < 1) {
LAB_0001d6d0:
          *piVar1 = 0;
        }
        else {
          iVar11 = iVar11 * 0xc + *piVar4;
          *piVar1 = *(int *)(iVar11 + -0xc);
          *(undefined4 *)(&DAT_0001e7fe + unaff_EBP) = *(undefined4 *)(iVar11 + -8);
          *(undefined4 *)(unaff_EBP + 0x1e802) = *(undefined4 *)(iVar11 + -4);
        }
LAB_0001d658:
        FUN_00018a20(piVar1,unaff_EBP + 0x137a6);
      }
      FUN_0001bd50(&local_34);
      if (local_34 != 0) {
        FUN_0001a430(&local_34);
      }
      goto LAB_0001d552;
    }
    if (iVar11 != 0x111) goto LAB_0001d540;
    iVar9 = *piVar2;
    if (iVar9 != *piVar3) goto LAB_0001d450;
LAB_0001d4d0:
    uVar10 = FUN_00016330();
    uVar7 = *(undefined4 *)(unaff_EBP + 0x1e6da);
    iVar11 = *piVar4;
    uVar8 = *(undefined4 *)(unaff_EBP + 0x1e6f6);
    iVar9 = *piVar3 + 1;
    puVar6 = (undefined4 *)(iVar11 + *piVar3 * 0xc);
    *puVar6 = uVar10;
    puVar6[1] = uVar8;
    puVar6[2] = uVar7;
    *piVar3 = iVar9;
    if (iVar9 == *(int *)(unaff_EBP + 0x1e33a)) {
      iVar9 = iVar9 + *(int *)(unaff_EBP + 0x1e336);
      *(int *)(unaff_EBP + 0x1e33a) = iVar9;
      iVar11 = FUN_00027730(iVar11,iVar9 * 0xc);
      *piVar4 = iVar11;
    }
    *(undefined4 *)(unaff_EBP + 0x1e6f6) = 0;
    iVar9 = *piVar2;
  } while( true );
}

