
/* WARNING: Enum "DT": Some values do not have unique names */
/* gold::Layout::Layout(int, gold::Script_options*) [clone .cold.732] */

void __thiscall gold::Layout::Layout(Layout *this,int param_1,Script_options *param_2)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  undefined4 in_EAX;
  undefined4 *puVar4;
  int unaff_EBP;
  int unaff_ESI;
  undefined4 *unaff_EDI;
  int iVar5;
  
  *(undefined4 *)(unaff_EBP + -0x44) = in_EAX;
  operator_delete(*(void **)(unaff_EBP + -0x2c),0x4c);
  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);
  if (*(void **)(unaff_EBP + -0x30) != (void *)unaff_EDI[3]) {
    operator_delete((void *)unaff_EDI[3]);
  }
  if ((void *)*unaff_EDI != (void *)0x0) {
    operator_delete((void *)*unaff_EDI);
  }
  operator_delete(unaff_EDI,0x48);
  std::
  _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>
  ::_M_erase((_Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>
              *)(unaff_ESI + 0x26c),*(_Link_type *)(unaff_ESI + 0x274));
  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);
  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {
    puVar3 = (undefined4 *)*puVar4;
    operator_delete(puVar4);
    puVar4 = puVar3;
  }
  puVar4 = *(undefined4 **)(unaff_ESI + 0x238);
  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);
  for (; *(undefined4 **)(unaff_EBP + -0x30) != puVar4; puVar4 = puVar4 + 6) {
    if ((undefined4 *)*puVar4 != puVar4 + 2) {
      operator_delete((undefined4 *)*puVar4);
    }
  }
  if (*(void **)(unaff_ESI + 0x238) != (void *)0x0) {
    operator_delete(*(void **)(unaff_ESI + 0x238));
  }
  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);
  *(int *)(unaff_EBP + 8) = unaff_ESI;
  iVar1 = *(int *)(unaff_EBP + 8);
  while (puVar4 != (undefined4 *)0x0) {
    puVar3 = (undefined4 *)puVar4[1];
    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;
    if (puVar3 != puVar4 + 3) {
      operator_delete(puVar3);
    }
    operator_delete(puVar4);
    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);
  }
  memset(*(void **)(iVar1 + 0x21c),0,*(int *)(iVar1 + 0x220) << 2);
  *(undefined4 *)(iVar1 + 0x228) = 0;
  *(undefined4 *)(iVar1 + 0x224) = 0;
  if (*(void **)(unaff_EBP + -0x40) != *(void **)(iVar1 + 0x21c)) {
    operator_delete(*(void **)(iVar1 + 0x21c));
  }
  std::
  _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>
  ::_M_erase((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>
              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c));
  std::
  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>
  ::_M_erase((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>
              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500));
  if (*(void **)(iVar1 + 0x1d8) != (void *)0x0) {
    operator_delete(*(void **)(iVar1 + 0x1d8));
  }
  if (*(void **)(iVar1 + 0x1b0) != (void *)0x0) {
    operator_delete(*(void **)(iVar1 + 0x1b0));
  }
  if (*(void **)(iVar1 + 0x154) != (void *)0x0) {
    operator_delete(*(void **)(iVar1 + 0x154));
  }
  if (*(void **)(iVar1 + 0x148) != (void *)0x0) {
    operator_delete(*(void **)(iVar1 + 0x148));
  }
  if (*(void **)(iVar1 + 0x13c) != (void *)0x0) {
    operator_delete(*(void **)(iVar1 + 0x13c));
  }
  if (*(void **)(iVar1 + 0x130) != (void *)0x0) {
    operator_delete(*(void **)(iVar1 + 0x130));
  }
  if (*(void **)(iVar1 + 0x124) != (void *)0x0) {
    operator_delete(*(void **)(iVar1 + 0x124));
  }
  puVar4 = *(undefined4 **)(iVar1 + 0x110);
  while (puVar4 != (undefined4 *)0x0) {
    puVar3 = (undefined4 *)*puVar4;
    operator_delete(puVar4);
    puVar4 = puVar3;
  }
  iVar5 = 0;
  memset(*(void **)(iVar1 + 0x108),0,*(int *)(iVar1 + 0x10c) << 2);
  *(undefined4 *)(iVar1 + 0x114) = 0;
  *(undefined4 *)(iVar1 + 0x110) = 0;
  if (*(void **)(unaff_EBP + -0x38) != *(void **)(iVar1 + 0x108)) {
    operator_delete(*(void **)(iVar1 + 0x108));
  }
  puVar4 = *(undefined4 **)(iVar1 + 0xf4);
  *(int *)(unaff_EBP + 8) = iVar1;
  iVar1 = *(int *)(unaff_EBP + 8);
  while (puVar4 != (undefined4 *)0x0) {
    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;
    Kept_section::~Kept_section((Kept_section *)(puVar4 + 7),iVar5);
    if ((undefined4 *)puVar4[1] != puVar4 + 3) {
      operator_delete((undefined4 *)puVar4[1]);
    }
    operator_delete(puVar4);
    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);
  }
  iVar5 = 0;
  memset(*(void **)(iVar1 + 0xec),0,*(int *)(iVar1 + 0xf0) << 2);
  *(undefined4 *)(iVar1 + 0xf8) = 0;
  *(undefined4 *)(iVar1 + 0xf4) = 0;
  if (*(void **)(unaff_EBP + -0x34) != *(void **)(iVar1 + 0xec)) {
    operator_delete(*(void **)(iVar1 + 0xec));
  }
  Stringpool_template<char>::~Stringpool_template
            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5);
  uVar2 = *(undefined4 *)(unaff_EBP + -0x2c);
  Stringpool_template<char>::~Stringpool_template
            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5);
  Stringpool_template<char>::~Stringpool_template
            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5);
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume(uVar2);
}



void __regparm3 FUN_0002ab68(undefined4 param_1)

{
  int iVar1;
  undefined4 *puVar2;
  size_t sVar3;
  undefined4 *puVar4;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  undefined4 extraout_ECX_02;
  undefined4 extraout_ECX_03;
  undefined4 extraout_ECX_04;
  undefined4 extraout_ECX_05;
  undefined4 extraout_ECX_06;
  undefined4 extraout_ECX_07;
  undefined4 extraout_ECX_08;
  int *extraout_EDX;
  int *extraout_EDX_00;
  int *piVar5;
  undefined4 extraout_EDX_01;
  int *extraout_EDX_02;
  int *extraout_EDX_03;
  int *extraout_EDX_04;
  undefined4 extraout_EDX_05;
  undefined4 extraout_EDX_06;
  int unaff_EBP;
  int unaff_ESI;
  int *unaff_EDI;
  int *piVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  
  *(undefined4 *)(unaff_EBP + -0x44) = param_1;
  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);
  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);
  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {
    FUN_001e6db0(unaff_EDI[3]);
  }
  if (*unaff_EDI != 0) {
    FUN_001e6db0(*unaff_EDI);
  }
  FUN_001e6d90();
  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);
  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);
  piVar5 = extraout_EDX;
  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {
    puVar2 = (undefined4 *)*puVar4;
    FUN_001e6db0(puVar4);
    puVar4 = puVar2;
    piVar5 = extraout_EDX_02;
  }
  piVar6 = *(int **)(unaff_ESI + 0x238);
  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);
  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {
    piVar5 = piVar6 + 2;
    if ((int *)*piVar6 != piVar5) {
      FUN_001e6db0((int *)*piVar6);
      piVar5 = extraout_EDX_03;
    }
  }
  if (*(int *)(unaff_ESI + 0x238) != 0) {
    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));
    piVar5 = extraout_EDX_00;
  }
  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);
  *(int *)(unaff_EBP + 8) = unaff_ESI;
  iVar1 = *(int *)(unaff_EBP + 8);
  while (puVar4 != (undefined4 *)0x0) {
    puVar2 = (undefined4 *)puVar4[1];
    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;
    if (puVar2 != puVar4 + 3) {
      FUN_001e6db0(puVar2);
    }
    FUN_001e6db0(puVar4);
    piVar5 = extraout_EDX_04;
    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);
  }
  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);
  sVar3 = *(int *)(iVar1 + 0x220) << 2;
  uVar7 = 0;
  memset(*(void **)(iVar1 + 0x21c),0,sVar3);
  *(undefined4 *)(iVar1 + 0x228) = 0;
  *(undefined4 *)(iVar1 + 0x224) = 0;
  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {
    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);
    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);
  }
  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);
  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));
  uVar9 = extraout_ECX_00;
  if (*(int *)(iVar1 + 0x1d8) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));
    uVar9 = extraout_ECX_01;
  }
  if (*(int *)(iVar1 + 0x1b0) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));
    uVar9 = extraout_ECX_02;
  }
  if (*(int *)(iVar1 + 0x154) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x154));
    uVar9 = extraout_ECX_03;
  }
  if (*(int *)(iVar1 + 0x148) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x148));
    uVar9 = extraout_ECX_04;
  }
  if (*(int *)(iVar1 + 0x13c) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x13c));
    uVar9 = extraout_ECX_05;
  }
  if (*(int *)(iVar1 + 0x130) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x130));
    uVar9 = extraout_ECX_06;
  }
  if (*(int *)(iVar1 + 0x124) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x124));
    uVar9 = extraout_ECX_07;
  }
  puVar4 = *(undefined4 **)(iVar1 + 0x110);
  while (puVar4 != (undefined4 *)0x0) {
    puVar2 = (undefined4 *)*puVar4;
    FUN_001e6db0(puVar4);
    puVar4 = puVar2;
    uVar9 = extraout_ECX_08;
  }
  sVar3 = *(int *)(iVar1 + 0x10c) << 2;
  uVar8 = 0;
  memset(*(void **)(iVar1 + 0x108),0,sVar3);
  *(undefined4 *)(iVar1 + 0x114) = 0;
  *(undefined4 *)(iVar1 + 0x110) = 0;
  uVar7 = extraout_EDX_01;
  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {
    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);
    uVar7 = extraout_EDX_05;
  }
  puVar4 = *(undefined4 **)(iVar1 + 0xf4);
  *(int *)(unaff_EBP + 8) = iVar1;
  iVar1 = *(int *)(unaff_EBP + 8);
  while (puVar4 != (undefined4 *)0x0) {
    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;
    FUN_000a5970(puVar4 + 7);
    if ((undefined4 *)puVar4[1] != puVar4 + 3) {
      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);
    }
    FUN_001e6db0(puVar4);
    uVar7 = extraout_EDX_06;
    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);
  }
  sVar3 = *(int *)(iVar1 + 0xf0) << 2;
  uVar9 = 0;
  memset(*(void **)(iVar1 + 0xec),0,sVar3);
  *(undefined4 *)(iVar1 + 0xf8) = 0;
  *(undefined4 *)(iVar1 + 0xf4) = 0;
  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {
    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);
  }
  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));
  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);
  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));
  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));
                    /* WARNING: Subroutine does not return */
  FUN_0027dd80(uVar9);
}


MOV dword ptr [EBP + -0x44],EAX
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
PUSH EAX
PUSH 0x4c
PUSH dword ptr [EBP + -0x2c]
CALL 0x001e6d90
MOV EAX,dword ptr [EBP + -0x44]
ADD ESP,0x10
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EDI + 0xc]
CMP dword ptr [EBP + -0x30],EAX
JZ 0x0002ab9a
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0002abaf
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
PUSH EBX
PUSH EBX
MOV EBX,dword ptr [EBP + -0x1c]
PUSH 0x48
PUSH EDI
CALL 0x001e6d90
ADD ESP,0x10
LEA EAX,[ESI + 0x26c]
PUSH ECX
PUSH ECX
PUSH dword ptr [ESI + 0x274]
PUSH EAX
CALL 0x000a5a50
MOV EAX,dword ptr [ESI + 0x248]
ADD ESP,0x10
CMP dword ptr [EBP + -0x3c],EAX
JNZ 0x0002ae2c
MOV EAX,dword ptr [ESI + 0x23c]
MOV EDI,dword ptr [ESI + 0x238]
MOV dword ptr [EBP + -0x30],EAX
CMP dword ptr [EBP + -0x30],EDI
JNZ 0x0002ae44
MOV EAX,dword ptr [ESI + 0x238]
TEST EAX,EAX
JZ 0x0002ac16
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EDI,dword ptr [ESI + 0x224]
MOV dword ptr [EBP + 0x8],ESI
MOV ESI,EDI
MOV EDI,dword ptr [EBP + 0x8]
TEST ESI,ESI
JNZ 0x0002ae64
MOV EAX,dword ptr [EDI + 0x220]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDX
MOV ESI,EDI
SHL EAX,0x2
PUSH EAX
PUSH 0x0
PUSH dword ptr [EDI + 0x21c]
CALL 0x000292f0
MOV EAX,dword ptr [EDI + 0x21c]
ADD ESP,0x10
MOV dword ptr [EDI + 0x228],0x0
MOV dword ptr [EDI + 0x224],0x0
CMP dword ptr [EBP + -0x40],EAX
JNZ 0x0002ae99
LEA EAX,[ESI + 0x204]
PUSH EBX
PUSH EBX
PUSH dword ptr [ESI + 0x20c]
PUSH EAX
CALL 0x000a5a00
POP EDI
POP EAX
LEA EAX,[ESI + 0x1ec]
PUSH dword ptr [ESI + 0x1f4]
PUSH EAX
CALL 0x000a59b0
MOV EAX,dword ptr [ESI + 0x1d8]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002acb3
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x1b0]
TEST EAX,EAX
JZ 0x0002accc
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x154]
TEST EAX,EAX
JZ 0x0002ace5
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x148]
TEST EAX,EAX
JZ 0x0002acfe
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x13c]
TEST EAX,EAX
JZ 0x0002ad17
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x130]
TEST EAX,EAX
JZ 0x0002ad30
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x124]
TEST EAX,EAX
JZ 0x0002ad49
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x110]
TEST EAX,EAX
JNZ 0x0002aead
MOV EAX,dword ptr [ESI + 0x10c]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH ECX
SHL EAX,0x2
PUSH EAX
PUSH 0x0
PUSH dword ptr [ESI + 0x108]
CALL 0x000292f0
MOV EAX,dword ptr [ESI + 0x108]
ADD ESP,0x10
MOV dword ptr [ESI + 0x114],0x0
MOV dword ptr [ESI + 0x110],0x0
CMP dword ptr [EBP + -0x38],EAX
JNZ 0x0002aec5
MOV EDI,dword ptr [ESI + 0xf4]
MOV dword ptr [EBP + 0x8],ESI
MOV ESI,EDI
MOV EDI,dword ptr [EBP + 0x8]
TEST ESI,ESI
JNZ 0x0002aed9
MOV EAX,dword ptr [EDI + 0xf0]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDX
SHL EAX,0x2
PUSH EAX
PUSH 0x0
PUSH dword ptr [EDI + 0xec]
CALL 0x000292f0
MOV EAX,dword ptr [EDI + 0xec]
ADD ESP,0x10
MOV dword ptr [EDI + 0xf8],0x0
MOV dword ptr [EDI + 0xf4],0x0
CMP dword ptr [EBP + -0x34],EAX
JNZ 0x0002af1d
SUB ESP,0xc
PUSH dword ptr [EBP + -0x28]
MOV EBX,dword ptr [EBP + -0x1c]
CALL 0x00172a20
MOV ESI,dword ptr [EBP + -0x2c]
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBP + -0x24]
MOV EBX,dword ptr [EBP + -0x1c]
CALL 0x00172a20
ADD ESP,0x10
SUB ESP,0xc
MOV EDI,dword ptr [EBP + -0x1c]
PUSH dword ptr [EBP + -0x20]
MOV EBX,EDI
CALL 0x00172a20
MOV dword ptr [ESP],ESI
CALL 0x0027dd80
SUB ESP,0xc
MOV EDI,dword ptr [EAX]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,EDI
JMP 0x0002abdc
MOV EAX,dword ptr [EDI]
LEA EDX,[EDI + 0x8]
CMP EAX,EDX
JZ 0x0002ae5c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
ADD EDI,0x18
JMP 0x0002abf4
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [ESI + 0x4]
LEA ECX,[ESI + 0xc]
MOV dword ptr [EBP + -0x30],EAX
CMP EDX,ECX
JZ 0x0002ae82
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH ESI
CALL 0x001e6db0
ADD ESP,0x10
MOV ESI,dword ptr [EBP + -0x30]
JMP 0x0002ac24
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
JMP 0x0002ac6f
SUB ESP,0xc
MOV EDI,dword ptr [EAX]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,EDI
JMP 0x0002ad4f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
JMP 0x0002ad98
SUB ESP,0xc
LEA EDX,[ESI + 0x1c]
MOV EAX,dword ptr [ESI]
PUSH EDX
MOV dword ptr [EBP + -0x30],EAX
CALL 0x000a5970
MOV EDX,dword ptr [ESI + 0x4]
LEA ECX,[ESI + 0xc]
ADD ESP,0x10
CMP EDX,ECX
JZ 0x0002af06
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH ESI
CALL 0x001e6db0
ADD ESP,0x10
MOV ESI,dword ptr [EBP + -0x30]
JMP 0x0002ada6
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
JMP 0x0002adef
(translation_unit "void __regparm3 FUN_0002ab68(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    /* WARNING: Subroutine does not return */\n  FUN_0027dd80(uVar9);\n}\n\n" (function_definition "void __regparm3 FUN_0002ab68(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    /* WARNING: Subroutine does not return */\n  FUN_0027dd80(uVar9);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002ab68(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    /* WARNING: Subroutine does not return */\n  FUN_0027dd80(uVar9);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_02;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_03;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_05;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_06;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_07;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_08;" type_identifier identifier ;) (declaration "int *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "int *extraout_EDX_00;" primitive_type (pointer_declarator "*extraout_EDX_00" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "int *extraout_EDX_02;" primitive_type (pointer_declarator "*extraout_EDX_02" * identifier) ;) (declaration "int *extraout_EDX_03;" primitive_type (pointer_declarator "*extraout_EDX_03" * identifier) ;) (declaration "int *extraout_EDX_04;" primitive_type (pointer_declarator "*extraout_EDX_04" * identifier) ;) (declaration "undefined4 extraout_EDX_05;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_06;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int unaff_ESI;" primitive_type identifier ;) (declaration "int *unaff_EDI;" primitive_type (pointer_declarator "*unaff_EDI" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x44) = param_1;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x44) = param_1" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x44)" ( (binary_expression "unaff_EBP + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);" (call_expression "FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) )))) , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x44)" ( (binary_expression "unaff_EBP + -0x44" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x30) != unaff_EDI[3])" ( (binary_expression "*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]" (pointer_expression "*(int *)(unaff_EBP + -0x30)" * (cast_expression "(int *)(unaff_EBP + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != (subscript_expression "unaff_EDI[3]" identifier [ number_literal ])) )) (compound_statement "{\n    FUN_001e6db0(unaff_EDI[3]);\n  }" { (expression_statement "FUN_001e6db0(unaff_EDI[3]);" (call_expression "FUN_001e6db0(unaff_EDI[3])" identifier (argument_list "(unaff_EDI[3])" ( (subscript_expression "unaff_EDI[3]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }" if (parenthesized_expression "(*unaff_EDI != 0)" ( (binary_expression "*unaff_EDI != 0" (pointer_expression "*unaff_EDI" * identifier) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*unaff_EDI);\n  }" { (expression_statement "FUN_001e6db0(*unaff_EDI);" (call_expression "FUN_001e6db0(*unaff_EDI)" identifier (argument_list "(*unaff_EDI)" ( (pointer_expression "*unaff_EDI" * identifier) ))) ;) })) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);" (call_expression "FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX)" identifier (argument_list "(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX)" ( (binary_expression "unaff_ESI + 0x26c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(unaff_ESI + 0x274)" * (cast_expression "(undefined4 *)(unaff_ESI + 0x274)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x274)" ( (binary_expression "unaff_ESI + 0x274" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x248);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x248)" identifier = (pointer_expression "*(undefined4 **)(unaff_ESI + 0x248)" * (cast_expression "(undefined4 **)(unaff_ESI + 0x248)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x248)" ( (binary_expression "unaff_ESI + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = extraout_EDX;" (assignment_expression "piVar5 = extraout_EDX" identifier = identifier) ;) (while_statement "while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }" while (parenthesized_expression "(*(undefined4 **)(unaff_EBP + -0x3c) != puVar4)" ( (binary_expression "*(undefined4 **)(unaff_EBP + -0x3c) != puVar4" (pointer_expression "*(undefined4 **)(unaff_EBP + -0x3c)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x3c)" ( (binary_expression "unaff_EBP + -0x3c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }" { (expression_statement "puVar2 = (undefined4 *)*puVar4;" (assignment_expression "puVar2 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "piVar5 = extraout_EDX_02;" (assignment_expression "piVar5 = extraout_EDX_02" identifier = identifier) ;) })) (expression_statement "piVar6 = *(int **)(unaff_ESI + 0x238);" (assignment_expression "piVar6 = *(int **)(unaff_ESI + 0x238)" identifier = (pointer_expression "*(int **)(unaff_ESI + 0x238)" * (cast_expression "(int **)(unaff_ESI + 0x238)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_ESI + 0x23c)" * (cast_expression "(undefined4 *)(unaff_ESI + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x23c)" ( (binary_expression "unaff_ESI + 0x23c" identifier + number_literal) ))))) ;) (for_statement "for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }" for ( ; (binary_expression "*(int **)(unaff_EBP + -0x30) != piVar6" (pointer_expression "*(int **)(unaff_EBP + -0x30)" * (cast_expression "(int **)(unaff_EBP + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != identifier) ; (assignment_expression "piVar6 = piVar6 + 6" identifier = (binary_expression "piVar6 + 6" identifier + number_literal)) ) (compound_statement "{\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }" { (expression_statement "piVar5 = piVar6 + 2;" (assignment_expression "piVar5 = piVar6 + 2" identifier = (binary_expression "piVar6 + 2" identifier + number_literal)) ;) (if_statement "if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }" if (parenthesized_expression "((int *)*piVar6 != piVar5)" ( (binary_expression "(int *)*piVar6 != piVar5" (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier)) != identifier) )) (compound_statement "{\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }" { (expression_statement "FUN_001e6db0((int *)*piVar6);" (call_expression "FUN_001e6db0((int *)*piVar6)" identifier (argument_list "((int *)*piVar6)" ( (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier)) ))) ;) (expression_statement "piVar5 = extraout_EDX_03;" (assignment_expression "piVar5 = extraout_EDX_03" identifier = identifier) ;) })) })) (if_statement "if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }" if (parenthesized_expression "(*(int *)(unaff_ESI + 0x238) != 0)" ( (binary_expression "*(int *)(unaff_ESI + 0x238) != 0" (pointer_expression "*(int *)(unaff_ESI + 0x238)" * (cast_expression "(int *)(unaff_ESI + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(unaff_ESI + 0x238));" (call_expression "FUN_001e6db0(*(int *)(unaff_ESI + 0x238))" identifier (argument_list "(*(int *)(unaff_ESI + 0x238))" ( (pointer_expression "*(int *)(unaff_ESI + 0x238)" * (cast_expression "(int *)(unaff_ESI + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) )))) ))) ;) (expression_statement "piVar5 = extraout_EDX_00;" (assignment_expression "piVar5 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x224);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x224)" identifier = (pointer_expression "*(undefined4 **)(unaff_ESI + 0x224)" * (cast_expression "(undefined4 **)(unaff_ESI + 0x224)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x224)" ( (binary_expression "unaff_ESI + 0x224" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(unaff_EBP + 8) = unaff_ESI;" (assignment_expression "*(int *)(unaff_EBP + 8) = unaff_ESI" (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" identifier = (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" { (expression_statement "puVar2 = (undefined4 *)puVar4[1];" (assignment_expression "puVar2 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (if_statement "if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }" if (parenthesized_expression "(puVar2 != puVar4 + 3)" ( (binary_expression "puVar2 != puVar4 + 3" identifier != (binary_expression "puVar4 + 3" identifier + number_literal)) )) (compound_statement "{\n      FUN_001e6db0(puVar2);\n    }" { (expression_statement "FUN_001e6db0(puVar2);" (call_expression "FUN_001e6db0(puVar2)" identifier (argument_list "(puVar2)" ( identifier ))) ;) })) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "piVar5 = extraout_EDX_04;" (assignment_expression "piVar5 = extraout_EDX_04" identifier = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) ))))) ;) })) (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x1c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x1c)" ( (binary_expression "unaff_EBP + -0x1c" identifier + number_literal) ))))) ;) (expression_statement "sVar3 = *(int *)(iVar1 + 0x220) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0x220) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0x220) << 2" (pointer_expression "*(int *)(iVar1 + 0x220)" * (cast_expression "(int *)(iVar1 + 0x220)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x220)" ( (binary_expression "iVar1 + 0x220" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0x21c),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0x21c),0,sVar3)" identifier (argument_list "(*(void **)(iVar1 + 0x21c),0,sVar3)" ( (pointer_expression "*(void **)(iVar1 + 0x21c)" * (cast_expression "(void **)(iVar1 + 0x21c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x228) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x228) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x228)" * (cast_expression "(undefined4 *)(iVar1 + 0x228)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x228)" ( (binary_expression "iVar1 + 0x228" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x224) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x224) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x224)" * (cast_expression "(undefined4 *)(iVar1 + 0x224)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x224)" ( (binary_expression "iVar1 + 0x224" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c))" ( (binary_expression "*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)" (pointer_expression "*(int *)(unaff_EBP + -0x40)" * (cast_expression "(int *)(unaff_EBP + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x40)" ( (binary_expression "unaff_EBP + -0x40" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar1 + 0x21c)" * (cast_expression "(int *)(iVar1 + 0x21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }" { (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x1c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x1c)" ( (binary_expression "unaff_EBP + -0x1c" identifier + number_literal) ))))) ;) (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5)" identifier (argument_list "(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5)" ( (pointer_expression "*(int *)(iVar1 + 0x21c)" * (cast_expression "(int *)(iVar1 + 0x21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);" (call_expression "FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9)" identifier (argument_list "(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9)" ( (binary_expression "iVar1 + 0x204" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar1 + 0x20c)" * (cast_expression "(undefined4 *)(iVar1 + 0x20c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20c)" ( (binary_expression "iVar1 + 0x20c" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));" (call_expression "FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500))" identifier (argument_list "(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500))" ( (binary_expression "iVar1 + 0x1ec" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar1 + 500)" * (cast_expression "(undefined4 *)(iVar1 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 500)" ( (binary_expression "iVar1 + 500" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_00;" (assignment_expression "uVar9 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x1d8) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x1d8) != 0" (pointer_expression "*(int *)(iVar1 + 0x1d8)" * (cast_expression "(int *)(iVar1 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x1d8));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x1d8))" identifier (argument_list "(*(int *)(iVar1 + 0x1d8))" ( (pointer_expression "*(int *)(iVar1 + 0x1d8)" * (cast_expression "(int *)(iVar1 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_01;" (assignment_expression "uVar9 = extraout_ECX_01" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x1b0) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x1b0) != 0" (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x1b0));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x1b0))" identifier (argument_list "(*(int *)(iVar1 + 0x1b0))" ( (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_02;" (assignment_expression "uVar9 = extraout_ECX_02" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x154) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x154) != 0" (pointer_expression "*(int *)(iVar1 + 0x154)" * (cast_expression "(int *)(iVar1 + 0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x154)" ( (binary_expression "iVar1 + 0x154" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x154));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x154))" identifier (argument_list "(*(int *)(iVar1 + 0x154))" ( (pointer_expression "*(int *)(iVar1 + 0x154)" * (cast_expression "(int *)(iVar1 + 0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x154)" ( (binary_expression "iVar1 + 0x154" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_03;" (assignment_expression "uVar9 = extraout_ECX_03" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x148) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x148) != 0" (pointer_expression "*(int *)(iVar1 + 0x148)" * (cast_expression "(int *)(iVar1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x148)" ( (binary_expression "iVar1 + 0x148" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x148));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x148))" identifier (argument_list "(*(int *)(iVar1 + 0x148))" ( (pointer_expression "*(int *)(iVar1 + 0x148)" * (cast_expression "(int *)(iVar1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x148)" ( (binary_expression "iVar1 + 0x148" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_04;" (assignment_expression "uVar9 = extraout_ECX_04" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x13c) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x13c) != 0" (pointer_expression "*(int *)(iVar1 + 0x13c)" * (cast_expression "(int *)(iVar1 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x13c)" ( (binary_expression "iVar1 + 0x13c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x13c));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x13c))" identifier (argument_list "(*(int *)(iVar1 + 0x13c))" ( (pointer_expression "*(int *)(iVar1 + 0x13c)" * (cast_expression "(int *)(iVar1 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x13c)" ( (binary_expression "iVar1 + 0x13c" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_05;" (assignment_expression "uVar9 = extraout_ECX_05" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x130) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x130) != 0" (pointer_expression "*(int *)(iVar1 + 0x130)" * (cast_expression "(int *)(iVar1 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x130));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x130))" identifier (argument_list "(*(int *)(iVar1 + 0x130))" ( (pointer_expression "*(int *)(iVar1 + 0x130)" * (cast_expression "(int *)(iVar1 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_06;" (assignment_expression "uVar9 = extraout_ECX_06" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x124) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x124) != 0" (pointer_expression "*(int *)(iVar1 + 0x124)" * (cast_expression "(int *)(iVar1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x124));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x124))" identifier (argument_list "(*(int *)(iVar1 + 0x124))" ( (pointer_expression "*(int *)(iVar1 + 0x124)" * (cast_expression "(int *)(iVar1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_07;" (assignment_expression "uVar9 = extraout_ECX_07" identifier = identifier) ;) })) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0x110);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0x110)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x110)" * (cast_expression "(undefined4 **)(iVar1 + 0x110)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x110)" ( (binary_expression "iVar1 + 0x110" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }" { (expression_statement "puVar2 = (undefined4 *)*puVar4;" (assignment_expression "puVar2 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "uVar9 = extraout_ECX_08;" (assignment_expression "uVar9 = extraout_ECX_08" identifier = identifier) ;) })) (expression_statement "sVar3 = *(int *)(iVar1 + 0x10c) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0x10c) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0x10c) << 2" (pointer_expression "*(int *)(iVar1 + 0x10c)" * (cast_expression "(int *)(iVar1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10c)" ( (binary_expression "iVar1 + 0x10c" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0x108),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0x108),0,sVar3)" identifier (argument_list "(*(void **)(iVar1 + 0x108),0,sVar3)" ( (pointer_expression "*(void **)(iVar1 + 0x108)" * (cast_expression "(void **)(iVar1 + 0x108)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x114) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x114) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x114)" * (cast_expression "(undefined4 *)(iVar1 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x114)" ( (binary_expression "iVar1 + 0x114" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x110) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x110) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x110)" * (cast_expression "(undefined4 *)(iVar1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x110)" ( (binary_expression "iVar1 + 0x110" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = extraout_EDX_01;" (assignment_expression "uVar7 = extraout_EDX_01" identifier = identifier) ;) (if_statement "if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108))" ( (binary_expression "*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)" (pointer_expression "*(int *)(unaff_EBP + -0x38)" * (cast_expression "(int *)(unaff_EBP + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x38)" ( (binary_expression "unaff_EBP + -0x38" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar1 + 0x108)" * (cast_expression "(int *)(iVar1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9)" identifier (argument_list "(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9)" ( (pointer_expression "*(int *)(iVar1 + 0x108)" * (cast_expression "(int *)(iVar1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) (expression_statement "uVar7 = extraout_EDX_05;" (assignment_expression "uVar7 = extraout_EDX_05" identifier = identifier) ;) })) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0xf4);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0xf4)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0xf4)" * (cast_expression "(undefined4 **)(iVar1 + 0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xf4)" ( (binary_expression "iVar1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(unaff_EBP + 8) = iVar1;" (assignment_expression "*(int *)(unaff_EBP + 8) = iVar1" (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" identifier = (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" { (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_000a5970(puVar4 + 7);" (call_expression "FUN_000a5970(puVar4 + 7)" identifier (argument_list "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) ))) ;) (if_statement "if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }" if (parenthesized_expression "((undefined4 *)puVar4[1] != puVar4 + 3)" ( (binary_expression "(undefined4 *)puVar4[1] != puVar4 + 3" (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) != (binary_expression "puVar4 + 3" identifier + number_literal)) )) (compound_statement "{\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }" { (expression_statement "FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);" (call_expression "FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9)" identifier (argument_list "((undefined4 *)puVar4[1],uVar8,sVar3,uVar9)" ( (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "uVar7 = extraout_EDX_06;" (assignment_expression "uVar7 = extraout_EDX_06" identifier = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) ))))) ;) })) (expression_statement "sVar3 = *(int *)(iVar1 + 0xf0) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0xf0) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0xf0) << 2" (pointer_expression "*(int *)(iVar1 + 0xf0)" * (cast_expression "(int *)(iVar1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf0)" ( (binary_expression "iVar1 + 0xf0" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0xec),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0xec),0,sVar3)" identifier (argument_list "(*(void **)(iVar1 + 0xec),0,sVar3)" ( (pointer_expression "*(void **)(iVar1 + 0xec)" * (cast_expression "(void **)(iVar1 + 0xec)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf8)" * (cast_expression "(undefined4 *)(iVar1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf8)" ( (binary_expression "iVar1 + 0xf8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xf4) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf4) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf4)" * (cast_expression "(undefined4 *)(iVar1 + 0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf4)" ( (binary_expression "iVar1 + 0xf4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec))" ( (binary_expression "*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)" (pointer_expression "*(int *)(unaff_EBP + -0x34)" * (cast_expression "(int *)(unaff_EBP + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x34)" ( (binary_expression "unaff_EBP + -0x34" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar1 + 0xec)" * (cast_expression "(int *)(iVar1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7)" identifier (argument_list "(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7)" ( (pointer_expression "*(int *)(iVar1 + 0xec)" * (cast_expression "(int *)(iVar1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x28))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x28)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x28)" ( (binary_expression "unaff_EBP + -0x28" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x2c)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) ))))) ;) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x24))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x24)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x24)" ( (binary_expression "unaff_EBP + -0x24" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x20))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x20)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x20)" ( (binary_expression "unaff_EBP + -0x20" identifier + number_literal) )))) ))) ;) comment (expression_statement "FUN_0027dd80(uVar9);" (call_expression "FUN_0027dd80(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* gold::Layout::Layout(int, gold::Script_options*) [clone .cold.732] */\n\nvoid __thiscall gold::Layout::Layout(Layout *this,int param_1,Script_options *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  undefined4 in_EAX;\n  undefined4 *puVar4;\n  int unaff_EBP;\n  int unaff_ESI;\n  undefined4 *unaff_EDI;\n  int iVar5;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = in_EAX;\n  operator_delete(*(void **)(unaff_EBP + -0x2c),0x4c);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(void **)(unaff_EBP + -0x30) != (void *)unaff_EDI[3]) {\n    operator_delete((void *)unaff_EDI[3]);\n  }\n  if ((void *)*unaff_EDI != (void *)0x0) {\n    operator_delete((void *)*unaff_EDI);\n  }\n  operator_delete(unaff_EDI,0x48);\n  std::\n  _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>\n  ::_M_erase((_Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>\n              *)(unaff_ESI + 0x26c),*(_Link_type *)(unaff_ESI + 0x274));\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(undefined4 **)(unaff_EBP + -0x30) != puVar4; puVar4 = puVar4 + 6) {\n    if ((undefined4 *)*puVar4 != puVar4 + 2) {\n      operator_delete((undefined4 *)*puVar4);\n    }\n  }\n  if (*(void **)(unaff_ESI + 0x238) != (void *)0x0) {\n    operator_delete(*(void **)(unaff_ESI + 0x238));\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar3 != puVar4 + 3) {\n      operator_delete(puVar3);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  memset(*(void **)(iVar1 + 0x21c),0,*(int *)(iVar1 + 0x220) << 2);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(void **)(unaff_EBP + -0x40) != *(void **)(iVar1 + 0x21c)) {\n    operator_delete(*(void **)(iVar1 + 0x21c));\n  }\n  std::\n  _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n  ::_M_erase((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c));\n  std::\n  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n  ::_M_erase((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500));\n  if (*(void **)(iVar1 + 0x1d8) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1d8));\n  }\n  if (*(void **)(iVar1 + 0x1b0) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1b0));\n  }\n  if (*(void **)(iVar1 + 0x154) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x154));\n  }\n  if (*(void **)(iVar1 + 0x148) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x148));\n  }\n  if (*(void **)(iVar1 + 0x13c) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x13c));\n  }\n  if (*(void **)(iVar1 + 0x130) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x130));\n  }\n  if (*(void **)(iVar1 + 0x124) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x124));\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }\n  iVar5 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,*(int *)(iVar1 + 0x10c) << 2);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  if (*(void **)(unaff_EBP + -0x38) != *(void **)(iVar1 + 0x108)) {\n    operator_delete(*(void **)(iVar1 + 0x108));\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    Kept_section::~Kept_section((Kept_section *)(puVar4 + 7),iVar5);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      operator_delete((undefined4 *)puVar4[1]);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  iVar5 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,*(int *)(iVar1 + 0xf0) << 2);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(void **)(unaff_EBP + -0x34) != *(void **)(iVar1 + 0xec)) {\n    operator_delete(*(void **)(iVar1 + 0xec));\n  }\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5);\n  uVar2 = *(undefined4 *)(unaff_EBP + -0x2c);\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5);\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume(uVar2);\n}\n\n" comment comment (function_definition "void __thiscall gold::Layout::Layout(Layout *this,int param_1,Script_options *param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  undefined4 in_EAX;\n  undefined4 *puVar4;\n  int unaff_EBP;\n  int unaff_ESI;\n  undefined4 *unaff_EDI;\n  int iVar5;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = in_EAX;\n  operator_delete(*(void **)(unaff_EBP + -0x2c),0x4c);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(void **)(unaff_EBP + -0x30) != (void *)unaff_EDI[3]) {\n    operator_delete((void *)unaff_EDI[3]);\n  }\n  if ((void *)*unaff_EDI != (void *)0x0) {\n    operator_delete((void *)*unaff_EDI);\n  }\n  operator_delete(unaff_EDI,0x48);\n  std::\n  _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>\n  ::_M_erase((_Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>\n              *)(unaff_ESI + 0x26c),*(_Link_type *)(unaff_ESI + 0x274));\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(undefined4 **)(unaff_EBP + -0x30) != puVar4; puVar4 = puVar4 + 6) {\n    if ((undefined4 *)*puVar4 != puVar4 + 2) {\n      operator_delete((undefined4 *)*puVar4);\n    }\n  }\n  if (*(void **)(unaff_ESI + 0x238) != (void *)0x0) {\n    operator_delete(*(void **)(unaff_ESI + 0x238));\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar3 != puVar4 + 3) {\n      operator_delete(puVar3);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  memset(*(void **)(iVar1 + 0x21c),0,*(int *)(iVar1 + 0x220) << 2);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(void **)(unaff_EBP + -0x40) != *(void **)(iVar1 + 0x21c)) {\n    operator_delete(*(void **)(iVar1 + 0x21c));\n  }\n  std::\n  _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n  ::_M_erase((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c));\n  std::\n  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n  ::_M_erase((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500));\n  if (*(void **)(iVar1 + 0x1d8) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1d8));\n  }\n  if (*(void **)(iVar1 + 0x1b0) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1b0));\n  }\n  if (*(void **)(iVar1 + 0x154) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x154));\n  }\n  if (*(void **)(iVar1 + 0x148) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x148));\n  }\n  if (*(void **)(iVar1 + 0x13c) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x13c));\n  }\n  if (*(void **)(iVar1 + 0x130) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x130));\n  }\n  if (*(void **)(iVar1 + 0x124) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x124));\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }\n  iVar5 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,*(int *)(iVar1 + 0x10c) << 2);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  if (*(void **)(unaff_EBP + -0x38) != *(void **)(iVar1 + 0x108)) {\n    operator_delete(*(void **)(iVar1 + 0x108));\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    Kept_section::~Kept_section((Kept_section *)(puVar4 + 7),iVar5);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      operator_delete((undefined4 *)puVar4[1]);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  iVar5 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,*(int *)(iVar1 + 0xf0) << 2);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(void **)(unaff_EBP + -0x34) != *(void **)(iVar1 + 0xec)) {\n    operator_delete(*(void **)(iVar1 + 0xec));\n  }\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5);\n  uVar2 = *(undefined4 *)(unaff_EBP + -0x2c);\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5);\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume(uVar2);\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "Layout(Layout *this,int param_1,Script_options *param_2)" identifier (parameter_list "(Layout *this,int param_1,Script_options *param_2)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "Script_options *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  undefined4 in_EAX;\n  undefined4 *puVar4;\n  int unaff_EBP;\n  int unaff_ESI;\n  undefined4 *unaff_EDI;\n  int iVar5;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = in_EAX;\n  operator_delete(*(void **)(unaff_EBP + -0x2c),0x4c);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(void **)(unaff_EBP + -0x30) != (void *)unaff_EDI[3]) {\n    operator_delete((void *)unaff_EDI[3]);\n  }\n  if ((void *)*unaff_EDI != (void *)0x0) {\n    operator_delete((void *)*unaff_EDI);\n  }\n  operator_delete(unaff_EDI,0x48);\n  std::\n  _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>\n  ::_M_erase((_Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>\n              *)(unaff_ESI + 0x26c),*(_Link_type *)(unaff_ESI + 0x274));\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(undefined4 **)(unaff_EBP + -0x30) != puVar4; puVar4 = puVar4 + 6) {\n    if ((undefined4 *)*puVar4 != puVar4 + 2) {\n      operator_delete((undefined4 *)*puVar4);\n    }\n  }\n  if (*(void **)(unaff_ESI + 0x238) != (void *)0x0) {\n    operator_delete(*(void **)(unaff_ESI + 0x238));\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar3 != puVar4 + 3) {\n      operator_delete(puVar3);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  memset(*(void **)(iVar1 + 0x21c),0,*(int *)(iVar1 + 0x220) << 2);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(void **)(unaff_EBP + -0x40) != *(void **)(iVar1 + 0x21c)) {\n    operator_delete(*(void **)(iVar1 + 0x21c));\n  }\n  std::\n  _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n  ::_M_erase((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c));\n  std::\n  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n  ::_M_erase((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500));\n  if (*(void **)(iVar1 + 0x1d8) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1d8));\n  }\n  if (*(void **)(iVar1 + 0x1b0) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1b0));\n  }\n  if (*(void **)(iVar1 + 0x154) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x154));\n  }\n  if (*(void **)(iVar1 + 0x148) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x148));\n  }\n  if (*(void **)(iVar1 + 0x13c) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x13c));\n  }\n  if (*(void **)(iVar1 + 0x130) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x130));\n  }\n  if (*(void **)(iVar1 + 0x124) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x124));\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }\n  iVar5 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,*(int *)(iVar1 + 0x10c) << 2);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  if (*(void **)(unaff_EBP + -0x38) != *(void **)(iVar1 + 0x108)) {\n    operator_delete(*(void **)(iVar1 + 0x108));\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    Kept_section::~Kept_section((Kept_section *)(puVar4 + 7),iVar5);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      operator_delete((undefined4 *)puVar4[1]);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  iVar5 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,*(int *)(iVar1 + 0xf0) << 2);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(void **)(unaff_EBP + -0x34) != *(void **)(iVar1 + 0xec)) {\n    operator_delete(*(void **)(iVar1 + 0xec));\n  }\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5);\n  uVar2 = *(undefined4 *)(unaff_EBP + -0x2c);\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5);\n  Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume(uVar2);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 in_EAX;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int unaff_ESI;" primitive_type identifier ;) (declaration "undefined4 *unaff_EDI;" type_identifier (pointer_declarator "*unaff_EDI" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x44) = in_EAX;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x44) = in_EAX" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x44)" ( (binary_expression "unaff_EBP + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "operator_delete(*(void **)(unaff_EBP + -0x2c),0x4c);" (call_expression "operator_delete(*(void **)(unaff_EBP + -0x2c),0x4c)" identifier (argument_list "(*(void **)(unaff_EBP + -0x2c),0x4c)" ( (pointer_expression "*(void **)(unaff_EBP + -0x2c)" * (cast_expression "(void **)(unaff_EBP + -0x2c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x44)" ( (binary_expression "unaff_EBP + -0x44" identifier + number_literal) ))))) ;) (if_statement "if (*(void **)(unaff_EBP + -0x30) != (void *)unaff_EDI[3]) {\n    operator_delete((void *)unaff_EDI[3]);\n  }" if (parenthesized_expression "(*(void **)(unaff_EBP + -0x30) != (void *)unaff_EDI[3])" ( (binary_expression "*(void **)(unaff_EBP + -0x30) != (void *)unaff_EDI[3]" (pointer_expression "*(void **)(unaff_EBP + -0x30)" * (cast_expression "(void **)(unaff_EBP + -0x30)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != (cast_expression "(void *)unaff_EDI[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_EDI[3]" identifier [ number_literal ]))) )) (compound_statement "{\n    operator_delete((void *)unaff_EDI[3]);\n  }" { (expression_statement "operator_delete((void *)unaff_EDI[3]);" (call_expression "operator_delete((void *)unaff_EDI[3])" identifier (argument_list "((void *)unaff_EDI[3])" ( (cast_expression "(void *)unaff_EDI[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_EDI[3]" identifier [ number_literal ])) ))) ;) })) (if_statement "if ((void *)*unaff_EDI != (void *)0x0) {\n    operator_delete((void *)*unaff_EDI);\n  }" if (parenthesized_expression "((void *)*unaff_EDI != (void *)0x0)" ( (binary_expression "(void *)*unaff_EDI != (void *)0x0" (cast_expression "(void *)*unaff_EDI" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_EDI" * identifier)) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete((void *)*unaff_EDI);\n  }" { (expression_statement "operator_delete((void *)*unaff_EDI);" (call_expression "operator_delete((void *)*unaff_EDI)" identifier (argument_list "((void *)*unaff_EDI)" ( (cast_expression "(void *)*unaff_EDI" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_EDI" * identifier)) ))) ;) })) (expression_statement "operator_delete(unaff_EDI,0x48);" (call_expression "operator_delete(unaff_EDI,0x48)" identifier (argument_list "(unaff_EDI,0x48)" ( identifier , number_literal ))) ;) (ERROR "std::\n  _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>_>\n  ::_M_erase((_Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_gold::" (comma_expression "std::\n  _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std" identifier (ERROR "::\n  _Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>" : : (comma_expression "_Rb_tree<unsigned_int,_std" (binary_expression "_Rb_tree<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Layout::Gnu_property>,_std" identifier (ERROR "::Gnu_property>" : : identifier >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Layout::Gnu_property>_>,_std" identifier (ERROR "::Gnu_property>_>" : : (binary_expression "Gnu_property>_" identifier > identifier) >) , identifier) : : (binary_expression "less<unsigned_int" identifier < identifier) >) , identifier) : : identifier < identifier : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Layout::Gnu_property>_>_>\n  ::_M_erase((_Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>,_std" identifier (ERROR "::Gnu_property>_>_>\n  ::_M_erase((_Rb_tree<unsigned_int,_std::pair<unsigned_int_const,_gold::Layout::Gnu_property>,_std::_Select1st<std::pair<unsigned_int_const,_gold::Layout::Gnu_property>_>,_std::less<unsigned_int>" : : (binary_expression "Gnu_property>_>_" (binary_expression "Gnu_property>_" identifier > identifier) > identifier) > : : identifier ( ( (comma_expression "_Rb_tree<unsigned_int,_std" (binary_expression "_Rb_tree<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Layout::Gnu_property>,_std" identifier (ERROR "::Gnu_property>" : : identifier >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : : (comma_expression "Layout::Gnu_property>_>,_std" identifier (ERROR "::Gnu_property>_>" : : (binary_expression "Gnu_property>_" identifier > identifier) >) , identifier) : : (binary_expression "less<unsigned_int" identifier < identifier) >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_gold" (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier) : :) (labeled_statement "Layout::Gnu_property>_>_>\n              *)(unaff_ESI + 0x26c),*(_Link_type *)(unaff_ESI + 0x274));" statement_identifier : (ERROR ":" :) (expression_statement "Gnu_property>_>_>\n              *)(unaff_ESI + 0x26c),*(_Link_type *)(unaff_ESI + 0x274));" (comma_expression "Gnu_property>_>_>\n              *)(unaff_ESI + 0x26c),*(_Link_type *)(unaff_ESI + 0x274)" (binary_expression "Gnu_property>_>_>\n              *)(unaff_ESI + 0x26c" (binary_expression "Gnu_property>_>_" (binary_expression "Gnu_property>_" identifier > identifier) > identifier) > (binary_expression "*)(unaff_ESI + 0x26c" (pointer_expression "*)(unaff_ESI" * (ERROR ")(" ) () identifier) + number_literal)) (ERROR ")" )) , (pointer_expression "*(_Link_type *)(unaff_ESI + 0x274)" * (cast_expression "(_Link_type *)(unaff_ESI + 0x274)" ( (type_descriptor "_Link_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x274)" ( (binary_expression "unaff_ESI + 0x274" identifier + number_literal) ))))) (ERROR ")" )) ;)) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x248);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x248)" identifier = (pointer_expression "*(undefined4 **)(unaff_ESI + 0x248)" * (cast_expression "(undefined4 **)(unaff_ESI + 0x248)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x248)" ( (binary_expression "unaff_ESI + 0x248" identifier + number_literal) ))))) ;) (while_statement "while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }" while (parenthesized_expression "(*(undefined4 **)(unaff_EBP + -0x3c) != puVar4)" ( (binary_expression "*(undefined4 **)(unaff_EBP + -0x3c) != puVar4" (pointer_expression "*(undefined4 **)(unaff_EBP + -0x3c)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x3c)" ( (binary_expression "unaff_EBP + -0x3c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)*puVar4;" (assignment_expression "puVar3 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "operator_delete(puVar4);" (call_expression "operator_delete(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) })) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x238);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x238)" identifier = (pointer_expression "*(undefined4 **)(unaff_ESI + 0x238)" * (cast_expression "(undefined4 **)(unaff_ESI + 0x238)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_ESI + 0x23c)" * (cast_expression "(undefined4 *)(unaff_ESI + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x23c)" ( (binary_expression "unaff_ESI + 0x23c" identifier + number_literal) ))))) ;) (for_statement "for (; *(undefined4 **)(unaff_EBP + -0x30) != puVar4; puVar4 = puVar4 + 6) {\n    if ((undefined4 *)*puVar4 != puVar4 + 2) {\n      operator_delete((undefined4 *)*puVar4);\n    }\n  }" for ( ; (binary_expression "*(undefined4 **)(unaff_EBP + -0x30) != puVar4" (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != identifier) ; (assignment_expression "puVar4 = puVar4 + 6" identifier = (binary_expression "puVar4 + 6" identifier + number_literal)) ) (compound_statement "{\n    if ((undefined4 *)*puVar4 != puVar4 + 2) {\n      operator_delete((undefined4 *)*puVar4);\n    }\n  }" { (if_statement "if ((undefined4 *)*puVar4 != puVar4 + 2) {\n      operator_delete((undefined4 *)*puVar4);\n    }" if (parenthesized_expression "((undefined4 *)*puVar4 != puVar4 + 2)" ( (binary_expression "(undefined4 *)*puVar4 != puVar4 + 2" (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) != (binary_expression "puVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n      operator_delete((undefined4 *)*puVar4);\n    }" { (expression_statement "operator_delete((undefined4 *)*puVar4);" (call_expression "operator_delete((undefined4 *)*puVar4)" identifier (argument_list "((undefined4 *)*puVar4)" ( (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier)) ))) ;) })) })) (if_statement "if (*(void **)(unaff_ESI + 0x238) != (void *)0x0) {\n    operator_delete(*(void **)(unaff_ESI + 0x238));\n  }" if (parenthesized_expression "(*(void **)(unaff_ESI + 0x238) != (void *)0x0)" ( (binary_expression "*(void **)(unaff_ESI + 0x238) != (void *)0x0" (pointer_expression "*(void **)(unaff_ESI + 0x238)" * (cast_expression "(void **)(unaff_ESI + 0x238)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(unaff_ESI + 0x238));\n  }" { (expression_statement "operator_delete(*(void **)(unaff_ESI + 0x238));" (call_expression "operator_delete(*(void **)(unaff_ESI + 0x238))" identifier (argument_list "(*(void **)(unaff_ESI + 0x238))" ( (pointer_expression "*(void **)(unaff_ESI + 0x238)" * (cast_expression "(void **)(unaff_ESI + 0x238)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) )))) ))) ;) })) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x224);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x224)" identifier = (pointer_expression "*(undefined4 **)(unaff_ESI + 0x224)" * (cast_expression "(undefined4 **)(unaff_ESI + 0x224)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x224)" ( (binary_expression "unaff_ESI + 0x224" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(unaff_EBP + 8) = unaff_ESI;" (assignment_expression "*(int *)(unaff_EBP + 8) = unaff_ESI" (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" identifier = (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar3 != puVar4 + 3) {\n      operator_delete(puVar3);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar3 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar3 != puVar4 + 3) {\n      operator_delete(puVar3);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" { (expression_statement "puVar3 = (undefined4 *)puVar4[1];" (assignment_expression "puVar3 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (if_statement "if (puVar3 != puVar4 + 3) {\n      operator_delete(puVar3);\n    }" if (parenthesized_expression "(puVar3 != puVar4 + 3)" ( (binary_expression "puVar3 != puVar4 + 3" identifier != (binary_expression "puVar4 + 3" identifier + number_literal)) )) (compound_statement "{\n      operator_delete(puVar3);\n    }" { (expression_statement "operator_delete(puVar3);" (call_expression "operator_delete(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) })) (expression_statement "operator_delete(puVar4);" (call_expression "operator_delete(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) ))))) ;) })) (expression_statement "memset(*(void **)(iVar1 + 0x21c),0,*(int *)(iVar1 + 0x220) << 2);" (call_expression "memset(*(void **)(iVar1 + 0x21c),0,*(int *)(iVar1 + 0x220) << 2)" identifier (argument_list "(*(void **)(iVar1 + 0x21c),0,*(int *)(iVar1 + 0x220) << 2)" ( (pointer_expression "*(void **)(iVar1 + 0x21c)" * (cast_expression "(void **)(iVar1 + 0x21c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) )))) , number_literal , (binary_expression "*(int *)(iVar1 + 0x220) << 2" (pointer_expression "*(int *)(iVar1 + 0x220)" * (cast_expression "(int *)(iVar1 + 0x220)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x220)" ( (binary_expression "iVar1 + 0x220" identifier + number_literal) )))) << number_literal) ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x228) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x228) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x228)" * (cast_expression "(undefined4 *)(iVar1 + 0x228)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x228)" ( (binary_expression "iVar1 + 0x228" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x224) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x224) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x224)" * (cast_expression "(undefined4 *)(iVar1 + 0x224)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x224)" ( (binary_expression "iVar1 + 0x224" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(void **)(unaff_EBP + -0x40) != *(void **)(iVar1 + 0x21c)) {\n    operator_delete(*(void **)(iVar1 + 0x21c));\n  }" if (parenthesized_expression "(*(void **)(unaff_EBP + -0x40) != *(void **)(iVar1 + 0x21c))" ( (binary_expression "*(void **)(unaff_EBP + -0x40) != *(void **)(iVar1 + 0x21c)" (pointer_expression "*(void **)(unaff_EBP + -0x40)" * (cast_expression "(void **)(unaff_EBP + -0x40)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x40)" ( (binary_expression "unaff_EBP + -0x40" identifier + number_literal) )))) != (pointer_expression "*(void **)(iVar1 + 0x21c)" * (cast_expression "(void **)(iVar1 + 0x21c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) ))))) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x21c));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x21c));" (call_expression "operator_delete(*(void **)(iVar1 + 0x21c))" identifier (argument_list "(*(void **)(iVar1 + 0x21c))" ( (pointer_expression "*(void **)(iVar1 + 0x21c)" * (cast_expression "(void **)(iVar1 + 0x21c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) )))) ))) ;) })) (ERROR "std::\n  _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::" (comma_expression "std::\n  _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n  _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold" identifier (ERROR "::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>" : : (comma_expression "Unique_segment_info*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "Layout::Unique_segment_info*>_>,_std" (binary_expression "Layout::Unique_segment_info*>_" identifier (ERROR "::Unique_segment_info*" : : identifier *) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : :) (expression_statement "Layout::Unique_segment_info*>_>_>\n  ::_M_erase((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c));" (binary_expression "Layout::Unique_segment_info*>_>_>\n  ::_M_erase((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c))" (binary_expression "Layout::Unique_segment_info*>_>_" (binary_expression "Layout::Unique_segment_info*>_" identifier (ERROR "::Unique_segment_info*" : : identifier *) > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_erase((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c))" identifier (argument_list "((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204),*(_Link_type *)(iVar1 + 0x20c))" ( (call_expression "(_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)(iVar1 + 0x204)" (parenthesized_expression "(_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n              *)" ( (ERROR "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::" (comma_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<const_gold" (binary_expression "_Rb_tree<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Layout::Unique_segment_info*>" : : identifier : : identifier * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : identifier : : (binary_expression "Unique_segment_info*>_>,_std" (binary_expression "Unique_segment_info*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : identifier : :) (binary_expression "Unique_segment_info*>_>_>\n              *" (binary_expression "Unique_segment_info*>_>_" (binary_expression "Unique_segment_info*>_" identifier * (ERROR ">" >) identifier) > identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(iVar1 + 0x204)" ( (binary_expression "iVar1 + 0x204" identifier + number_literal) ))) , (pointer_expression "*(_Link_type *)(iVar1 + 0x20c)" * (cast_expression "(_Link_type *)(iVar1 + 0x20c)" ( (type_descriptor "_Link_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20c)" ( (binary_expression "iVar1 + 0x20c" identifier + number_literal) )))) )))) ;) (ERROR "std::\n  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::" (comma_expression "std::\n  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n  _Rb_tree<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (expression_statement "Relobj*,_unsigned_int>,_unsigned_int>_>_>\n  ::_M_erase((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500));" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>_>_>\n  ::_M_erase((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500))" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>_>_" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_erase((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500))" identifier (argument_list "((_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec),*(_Link_type *)(iVar1 + 500))" ( (call_expression "(_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)(iVar1 + 0x1ec)" (parenthesized_expression "(_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *)" ( (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_>\n              *" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>_" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::less<std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std::pair<const_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::_Select1st<std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<gold" (binary_expression "_Rb_tree<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::_Select1st" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::less" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(iVar1 + 0x1ec)" ( (binary_expression "iVar1 + 0x1ec" identifier + number_literal) ))) , (pointer_expression "*(_Link_type *)(iVar1 + 500)" * (cast_expression "(_Link_type *)(iVar1 + 500)" ( (type_descriptor "_Link_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 500)" ( (binary_expression "iVar1 + 500" identifier + number_literal) )))) )))) ;) (if_statement "if (*(void **)(iVar1 + 0x1d8) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1d8));\n  }" if (parenthesized_expression "(*(void **)(iVar1 + 0x1d8) != (void *)0x0)" ( (binary_expression "*(void **)(iVar1 + 0x1d8) != (void *)0x0" (pointer_expression "*(void **)(iVar1 + 0x1d8)" * (cast_expression "(void **)(iVar1 + 0x1d8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x1d8));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x1d8));" (call_expression "operator_delete(*(void **)(iVar1 + 0x1d8))" identifier (argument_list "(*(void **)(iVar1 + 0x1d8))" ( (pointer_expression "*(void **)(iVar1 + 0x1d8)" * (cast_expression "(void **)(iVar1 + 0x1d8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(void **)(iVar1 + 0x1b0) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x1b0));\n  }" if (parenthesized_expression "(*(void **)(iVar1 + 0x1b0) != (void *)0x0)" ( (binary_expression "*(void **)(iVar1 + 0x1b0) != (void *)0x0" (pointer_expression "*(void **)(iVar1 + 0x1b0)" * (cast_expression "(void **)(iVar1 + 0x1b0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x1b0));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x1b0));" (call_expression "operator_delete(*(void **)(iVar1 + 0x1b0))" identifier (argument_list "(*(void **)(iVar1 + 0x1b0))" ( (pointer_expression "*(void **)(iVar1 + 0x1b0)" * (cast_expression "(void **)(iVar1 + 0x1b0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(void **)(iVar1 + 0x154) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x154));\n  }" if (parenthesized_expression "(*(void **)(iVar1 + 0x154) != (void *)0x0)" ( (binary_expression "*(void **)(iVar1 + 0x154) != (void *)0x0" (pointer_expression "*(void **)(iVar1 + 0x154)" * (cast_expression "(void **)(iVar1 + 0x154)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x154)" ( (binary_expression "iVar1 + 0x154" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x154));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x154));" (call_expression "operator_delete(*(void **)(iVar1 + 0x154))" identifier (argument_list "(*(void **)(iVar1 + 0x154))" ( (pointer_expression "*(void **)(iVar1 + 0x154)" * (cast_expression "(void **)(iVar1 + 0x154)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x154)" ( (binary_expression "iVar1 + 0x154" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(void **)(iVar1 + 0x148) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x148));\n  }" if (parenthesized_expression "(*(void **)(iVar1 + 0x148) != (void *)0x0)" ( (binary_expression "*(void **)(iVar1 + 0x148) != (void *)0x0" (pointer_expression "*(void **)(iVar1 + 0x148)" * (cast_expression "(void **)(iVar1 + 0x148)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x148)" ( (binary_expression "iVar1 + 0x148" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x148));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x148));" (call_expression "operator_delete(*(void **)(iVar1 + 0x148))" identifier (argument_list "(*(void **)(iVar1 + 0x148))" ( (pointer_expression "*(void **)(iVar1 + 0x148)" * (cast_expression "(void **)(iVar1 + 0x148)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x148)" ( (binary_expression "iVar1 + 0x148" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(void **)(iVar1 + 0x13c) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x13c));\n  }" if (parenthesized_expression "(*(void **)(iVar1 + 0x13c) != (void *)0x0)" ( (binary_expression "*(void **)(iVar1 + 0x13c) != (void *)0x0" (pointer_expression "*(void **)(iVar1 + 0x13c)" * (cast_expression "(void **)(iVar1 + 0x13c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x13c)" ( (binary_expression "iVar1 + 0x13c" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x13c));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x13c));" (call_expression "operator_delete(*(void **)(iVar1 + 0x13c))" identifier (argument_list "(*(void **)(iVar1 + 0x13c))" ( (pointer_expression "*(void **)(iVar1 + 0x13c)" * (cast_expression "(void **)(iVar1 + 0x13c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x13c)" ( (binary_expression "iVar1 + 0x13c" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(void **)(iVar1 + 0x130) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x130));\n  }" if (parenthesized_expression "(*(void **)(iVar1 + 0x130) != (void *)0x0)" ( (binary_expression "*(void **)(iVar1 + 0x130) != (void *)0x0" (pointer_expression "*(void **)(iVar1 + 0x130)" * (cast_expression "(void **)(iVar1 + 0x130)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x130));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x130));" (call_expression "operator_delete(*(void **)(iVar1 + 0x130))" identifier (argument_list "(*(void **)(iVar1 + 0x130))" ( (pointer_expression "*(void **)(iVar1 + 0x130)" * (cast_expression "(void **)(iVar1 + 0x130)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(void **)(iVar1 + 0x124) != (void *)0x0) {\n    operator_delete(*(void **)(iVar1 + 0x124));\n  }" if (parenthesized_expression "(*(void **)(iVar1 + 0x124) != (void *)0x0)" ( (binary_expression "*(void **)(iVar1 + 0x124) != (void *)0x0" (pointer_expression "*(void **)(iVar1 + 0x124)" * (cast_expression "(void **)(iVar1 + 0x124)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x124));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x124));" (call_expression "operator_delete(*(void **)(iVar1 + 0x124))" identifier (argument_list "(*(void **)(iVar1 + 0x124))" ( (pointer_expression "*(void **)(iVar1 + 0x124)" * (cast_expression "(void **)(iVar1 + 0x124)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) ))) ;) })) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0x110);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0x110)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x110)" * (cast_expression "(undefined4 **)(iVar1 + 0x110)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x110)" ( (binary_expression "iVar1 + 0x110" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar3 = (undefined4 *)*puVar4;\n    operator_delete(puVar4);\n    puVar4 = puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)*puVar4;" (assignment_expression "puVar3 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "operator_delete(puVar4);" (call_expression "operator_delete(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0x108),0,*(int *)(iVar1 + 0x10c) << 2);" (call_expression "memset(*(void **)(iVar1 + 0x108),0,*(int *)(iVar1 + 0x10c) << 2)" identifier (argument_list "(*(void **)(iVar1 + 0x108),0,*(int *)(iVar1 + 0x10c) << 2)" ( (pointer_expression "*(void **)(iVar1 + 0x108)" * (cast_expression "(void **)(iVar1 + 0x108)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) )))) , number_literal , (binary_expression "*(int *)(iVar1 + 0x10c) << 2" (pointer_expression "*(int *)(iVar1 + 0x10c)" * (cast_expression "(int *)(iVar1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10c)" ( (binary_expression "iVar1 + 0x10c" identifier + number_literal) )))) << number_literal) ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x114) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x114) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x114)" * (cast_expression "(undefined4 *)(iVar1 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x114)" ( (binary_expression "iVar1 + 0x114" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x110) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x110) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x110)" * (cast_expression "(undefined4 *)(iVar1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x110)" ( (binary_expression "iVar1 + 0x110" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(void **)(unaff_EBP + -0x38) != *(void **)(iVar1 + 0x108)) {\n    operator_delete(*(void **)(iVar1 + 0x108));\n  }" if (parenthesized_expression "(*(void **)(unaff_EBP + -0x38) != *(void **)(iVar1 + 0x108))" ( (binary_expression "*(void **)(unaff_EBP + -0x38) != *(void **)(iVar1 + 0x108)" (pointer_expression "*(void **)(unaff_EBP + -0x38)" * (cast_expression "(void **)(unaff_EBP + -0x38)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x38)" ( (binary_expression "unaff_EBP + -0x38" identifier + number_literal) )))) != (pointer_expression "*(void **)(iVar1 + 0x108)" * (cast_expression "(void **)(iVar1 + 0x108)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) ))))) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0x108));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0x108));" (call_expression "operator_delete(*(void **)(iVar1 + 0x108))" identifier (argument_list "(*(void **)(iVar1 + 0x108))" ( (pointer_expression "*(void **)(iVar1 + 0x108)" * (cast_expression "(void **)(iVar1 + 0x108)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) )))) ))) ;) })) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0xf4);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0xf4)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0xf4)" * (cast_expression "(undefined4 **)(iVar1 + 0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xf4)" ( (binary_expression "iVar1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(unaff_EBP + 8) = iVar1;" (assignment_expression "*(int *)(unaff_EBP + 8) = iVar1" (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" identifier = (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    Kept_section::~Kept_section((Kept_section *)(puVar4 + 7),iVar5);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      operator_delete((undefined4 *)puVar4[1]);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    Kept_section::~Kept_section((Kept_section *)(puVar4 + 7),iVar5);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      operator_delete((undefined4 *)puVar4[1]);\n    }\n    operator_delete(puVar4);\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" { (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (labeled_statement "Kept_section::~Kept_section((Kept_section *)(puVar4 + 7),iVar5);" statement_identifier : (ERROR ":" :) (expression_statement "~Kept_section((Kept_section *)(puVar4 + 7),iVar5);" (unary_expression "~Kept_section((Kept_section *)(puVar4 + 7),iVar5)" ~ (call_expression "Kept_section((Kept_section *)(puVar4 + 7),iVar5)" identifier (argument_list "((Kept_section *)(puVar4 + 7),iVar5)" ( (cast_expression "(Kept_section *)(puVar4 + 7)" ( (type_descriptor "Kept_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) ))) , identifier )))) ;)) (if_statement "if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      operator_delete((undefined4 *)puVar4[1]);\n    }" if (parenthesized_expression "((undefined4 *)puVar4[1] != puVar4 + 3)" ( (binary_expression "(undefined4 *)puVar4[1] != puVar4 + 3" (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) != (binary_expression "puVar4 + 3" identifier + number_literal)) )) (compound_statement "{\n      operator_delete((undefined4 *)puVar4[1]);\n    }" { (expression_statement "operator_delete((undefined4 *)puVar4[1]);" (call_expression "operator_delete((undefined4 *)puVar4[1])" identifier (argument_list "((undefined4 *)puVar4[1])" ( (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) ))) ;) })) (expression_statement "operator_delete(puVar4);" (call_expression "operator_delete(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) ))))) ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0xec),0,*(int *)(iVar1 + 0xf0) << 2);" (call_expression "memset(*(void **)(iVar1 + 0xec),0,*(int *)(iVar1 + 0xf0) << 2)" identifier (argument_list "(*(void **)(iVar1 + 0xec),0,*(int *)(iVar1 + 0xf0) << 2)" ( (pointer_expression "*(void **)(iVar1 + 0xec)" * (cast_expression "(void **)(iVar1 + 0xec)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) )))) , number_literal , (binary_expression "*(int *)(iVar1 + 0xf0) << 2" (pointer_expression "*(int *)(iVar1 + 0xf0)" * (cast_expression "(int *)(iVar1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf0)" ( (binary_expression "iVar1 + 0xf0" identifier + number_literal) )))) << number_literal) ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf8)" * (cast_expression "(undefined4 *)(iVar1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf8)" ( (binary_expression "iVar1 + 0xf8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xf4) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf4) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf4)" * (cast_expression "(undefined4 *)(iVar1 + 0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf4)" ( (binary_expression "iVar1 + 0xf4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(void **)(unaff_EBP + -0x34) != *(void **)(iVar1 + 0xec)) {\n    operator_delete(*(void **)(iVar1 + 0xec));\n  }" if (parenthesized_expression "(*(void **)(unaff_EBP + -0x34) != *(void **)(iVar1 + 0xec))" ( (binary_expression "*(void **)(unaff_EBP + -0x34) != *(void **)(iVar1 + 0xec)" (pointer_expression "*(void **)(unaff_EBP + -0x34)" * (cast_expression "(void **)(unaff_EBP + -0x34)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x34)" ( (binary_expression "unaff_EBP + -0x34" identifier + number_literal) )))) != (pointer_expression "*(void **)(iVar1 + 0xec)" * (cast_expression "(void **)(iVar1 + 0xec)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n    operator_delete(*(void **)(iVar1 + 0xec));\n  }" { (expression_statement "operator_delete(*(void **)(iVar1 + 0xec));" (call_expression "operator_delete(*(void **)(iVar1 + 0xec))" identifier (argument_list "(*(void **)(iVar1 + 0xec))" ( (pointer_expression "*(void **)(iVar1 + 0xec)" * (cast_expression "(void **)(iVar1 + 0xec)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) )))) ))) ;) })) (expression_statement "Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5);" (binary_expression "Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (unary_expression "~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5)" ~ (call_expression "Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5)" identifier (argument_list "(*(Stringpool_template<char> **)(unaff_EBP + -0x28),iVar5)" ( (pointer_expression "*(Stringpool_template<char> **)(unaff_EBP + -0x28)" * (call_expression "(Stringpool_template<char> **)(unaff_EBP + -0x28)" (parenthesized_expression "(Stringpool_template<char> **)" ( (binary_expression "Stringpool_template<char> **" (binary_expression "Stringpool_template<char" identifier < identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(unaff_EBP + -0x28)" ( (binary_expression "unaff_EBP + -0x28" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(unaff_EBP + -0x2c);" (assignment_expression "uVar2 = *(undefined4 *)(unaff_EBP + -0x2c)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) ))))) ;) (expression_statement "Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5);" (binary_expression "Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (unary_expression "~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5)" ~ (call_expression "Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5)" identifier (argument_list "(*(Stringpool_template<char> **)(unaff_EBP + -0x24),iVar5)" ( (pointer_expression "*(Stringpool_template<char> **)(unaff_EBP + -0x24)" * (call_expression "(Stringpool_template<char> **)(unaff_EBP + -0x24)" (parenthesized_expression "(Stringpool_template<char> **)" ( (binary_expression "Stringpool_template<char> **" (binary_expression "Stringpool_template<char" identifier < identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(unaff_EBP + -0x24)" ( (binary_expression "unaff_EBP + -0x24" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5);" (binary_expression "Stringpool_template<char>::~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (unary_expression "~Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5)" ~ (call_expression "Stringpool_template\n            (*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5)" identifier (argument_list "(*(Stringpool_template<char> **)(unaff_EBP + -0x20),iVar5)" ( (pointer_expression "*(Stringpool_template<char> **)(unaff_EBP + -0x20)" * (call_expression "(Stringpool_template<char> **)(unaff_EBP + -0x20)" (parenthesized_expression "(Stringpool_template<char> **)" ( (binary_expression "Stringpool_template<char> **" (binary_expression "Stringpool_template<char" identifier < identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(unaff_EBP + -0x20)" ( (binary_expression "unaff_EBP + -0x20" identifier + number_literal) )))) , identifier ))))) ;) comment (expression_statement "_Unwind_Resume(uVar2);" (call_expression "_Unwind_Resume(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) })))
(translation_unit "void __regparm3 FUN_0002ab68(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    \n  FUN_0027dd80(uVar9);\n}\n\n" (function_definition "void __regparm3 FUN_0002ab68(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    \n  FUN_0027dd80(uVar9);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002ab68(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    \n  FUN_0027dd80(uVar9);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_02;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_03;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_04;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_05;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_06;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_07;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_08;" type_identifier identifier ;) (declaration "int *extraout_EDX;" primitive_type (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "int *extraout_EDX_00;" primitive_type (pointer_declarator "*extraout_EDX_00" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "int *extraout_EDX_02;" primitive_type (pointer_declarator "*extraout_EDX_02" * identifier) ;) (declaration "int *extraout_EDX_03;" primitive_type (pointer_declarator "*extraout_EDX_03" * identifier) ;) (declaration "int *extraout_EDX_04;" primitive_type (pointer_declarator "*extraout_EDX_04" * identifier) ;) (declaration "undefined4 extraout_EDX_05;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_06;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int unaff_ESI;" primitive_type identifier ;) (declaration "int *unaff_EDI;" primitive_type (pointer_declarator "*unaff_EDI" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x44) = param_1;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x44) = param_1" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x44)" ( (binary_expression "unaff_EBP + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);" (call_expression "FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) )))) , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x44)" ( (binary_expression "unaff_EBP + -0x44" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x30) != unaff_EDI[3])" ( (binary_expression "*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]" (pointer_expression "*(int *)(unaff_EBP + -0x30)" * (cast_expression "(int *)(unaff_EBP + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != (subscript_expression "unaff_EDI[3]" identifier [ number_literal ])) )) (compound_statement "{\n    FUN_001e6db0(unaff_EDI[3]);\n  }" { (expression_statement "FUN_001e6db0(unaff_EDI[3]);" (call_expression "FUN_001e6db0(unaff_EDI[3])" identifier (argument_list "(unaff_EDI[3])" ( (subscript_expression "unaff_EDI[3]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }" if (parenthesized_expression "(*unaff_EDI != 0)" ( (binary_expression "*unaff_EDI != 0" (pointer_expression "*unaff_EDI" * identifier) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*unaff_EDI);\n  }" { (expression_statement "FUN_001e6db0(*unaff_EDI);" (call_expression "FUN_001e6db0(*unaff_EDI)" identifier (argument_list "(*unaff_EDI)" ( (pointer_expression "*unaff_EDI" * identifier) ))) ;) })) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);" (call_expression "FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX)" identifier (argument_list "(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX)" ( (binary_expression "unaff_ESI + 0x26c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(unaff_ESI + 0x274)" * (cast_expression "(undefined4 *)(unaff_ESI + 0x274)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x274)" ( (binary_expression "unaff_ESI + 0x274" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x248);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x248)" identifier = (pointer_expression "*(undefined4 **)(unaff_ESI + 0x248)" * (cast_expression "(undefined4 **)(unaff_ESI + 0x248)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x248)" ( (binary_expression "unaff_ESI + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = extraout_EDX;" (assignment_expression "piVar5 = extraout_EDX" identifier = identifier) ;) (while_statement "while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }" while (parenthesized_expression "(*(undefined4 **)(unaff_EBP + -0x3c) != puVar4)" ( (binary_expression "*(undefined4 **)(unaff_EBP + -0x3c) != puVar4" (pointer_expression "*(undefined4 **)(unaff_EBP + -0x3c)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x3c)" ( (binary_expression "unaff_EBP + -0x3c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }" { (expression_statement "puVar2 = (undefined4 *)*puVar4;" (assignment_expression "puVar2 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "piVar5 = extraout_EDX_02;" (assignment_expression "piVar5 = extraout_EDX_02" identifier = identifier) ;) })) (expression_statement "piVar6 = *(int **)(unaff_ESI + 0x238);" (assignment_expression "piVar6 = *(int **)(unaff_ESI + 0x238)" identifier = (pointer_expression "*(int **)(unaff_ESI + 0x238)" * (cast_expression "(int **)(unaff_ESI + 0x238)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_ESI + 0x23c)" * (cast_expression "(undefined4 *)(unaff_ESI + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x23c)" ( (binary_expression "unaff_ESI + 0x23c" identifier + number_literal) ))))) ;) (for_statement "for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }" for ( ; (binary_expression "*(int **)(unaff_EBP + -0x30) != piVar6" (pointer_expression "*(int **)(unaff_EBP + -0x30)" * (cast_expression "(int **)(unaff_EBP + -0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) != identifier) ; (assignment_expression "piVar6 = piVar6 + 6" identifier = (binary_expression "piVar6 + 6" identifier + number_literal)) ) (compound_statement "{\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }" { (expression_statement "piVar5 = piVar6 + 2;" (assignment_expression "piVar5 = piVar6 + 2" identifier = (binary_expression "piVar6 + 2" identifier + number_literal)) ;) (if_statement "if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }" if (parenthesized_expression "((int *)*piVar6 != piVar5)" ( (binary_expression "(int *)*piVar6 != piVar5" (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier)) != identifier) )) (compound_statement "{\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }" { (expression_statement "FUN_001e6db0((int *)*piVar6);" (call_expression "FUN_001e6db0((int *)*piVar6)" identifier (argument_list "((int *)*piVar6)" ( (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier)) ))) ;) (expression_statement "piVar5 = extraout_EDX_03;" (assignment_expression "piVar5 = extraout_EDX_03" identifier = identifier) ;) })) })) (if_statement "if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }" if (parenthesized_expression "(*(int *)(unaff_ESI + 0x238) != 0)" ( (binary_expression "*(int *)(unaff_ESI + 0x238) != 0" (pointer_expression "*(int *)(unaff_ESI + 0x238)" * (cast_expression "(int *)(unaff_ESI + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(unaff_ESI + 0x238));" (call_expression "FUN_001e6db0(*(int *)(unaff_ESI + 0x238))" identifier (argument_list "(*(int *)(unaff_ESI + 0x238))" ( (pointer_expression "*(int *)(unaff_ESI + 0x238)" * (cast_expression "(int *)(unaff_ESI + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_ESI + 0x238)" ( (binary_expression "unaff_ESI + 0x238" identifier + number_literal) )))) ))) ;) (expression_statement "piVar5 = extraout_EDX_00;" (assignment_expression "piVar5 = extraout_EDX_00" identifier = identifier) ;) })) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x224);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x224)" identifier = (pointer_expression "*(undefined4 **)(unaff_ESI + 0x224)" * (cast_expression "(undefined4 **)(unaff_ESI + 0x224)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_ESI + 0x224)" ( (binary_expression "unaff_ESI + 0x224" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(unaff_EBP + 8) = unaff_ESI;" (assignment_expression "*(int *)(unaff_EBP + 8) = unaff_ESI" (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" identifier = (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" { (expression_statement "puVar2 = (undefined4 *)puVar4[1];" (assignment_expression "puVar2 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (if_statement "if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }" if (parenthesized_expression "(puVar2 != puVar4 + 3)" ( (binary_expression "puVar2 != puVar4 + 3" identifier != (binary_expression "puVar4 + 3" identifier + number_literal)) )) (compound_statement "{\n      FUN_001e6db0(puVar2);\n    }" { (expression_statement "FUN_001e6db0(puVar2);" (call_expression "FUN_001e6db0(puVar2)" identifier (argument_list "(puVar2)" ( identifier ))) ;) })) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "piVar5 = extraout_EDX_04;" (assignment_expression "piVar5 = extraout_EDX_04" identifier = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) ))))) ;) })) (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x1c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x1c)" ( (binary_expression "unaff_EBP + -0x1c" identifier + number_literal) ))))) ;) (expression_statement "sVar3 = *(int *)(iVar1 + 0x220) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0x220) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0x220) << 2" (pointer_expression "*(int *)(iVar1 + 0x220)" * (cast_expression "(int *)(iVar1 + 0x220)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x220)" ( (binary_expression "iVar1 + 0x220" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0x21c),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0x21c),0,sVar3)" identifier (argument_list "(*(void **)(iVar1 + 0x21c),0,sVar3)" ( (pointer_expression "*(void **)(iVar1 + 0x21c)" * (cast_expression "(void **)(iVar1 + 0x21c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x228) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x228) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x228)" * (cast_expression "(undefined4 *)(iVar1 + 0x228)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x228)" ( (binary_expression "iVar1 + 0x228" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x224) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x224) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x224)" * (cast_expression "(undefined4 *)(iVar1 + 0x224)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x224)" ( (binary_expression "iVar1 + 0x224" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c))" ( (binary_expression "*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)" (pointer_expression "*(int *)(unaff_EBP + -0x40)" * (cast_expression "(int *)(unaff_EBP + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x40)" ( (binary_expression "unaff_EBP + -0x40" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar1 + 0x21c)" * (cast_expression "(int *)(iVar1 + 0x21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }" { (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x1c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x1c)" ( (binary_expression "unaff_EBP + -0x1c" identifier + number_literal) ))))) ;) (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5)" identifier (argument_list "(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5)" ( (pointer_expression "*(int *)(iVar1 + 0x21c)" * (cast_expression "(int *)(iVar1 + 0x21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x21c)" ( (binary_expression "iVar1 + 0x21c" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);" (call_expression "FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9)" identifier (argument_list "(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9)" ( (binary_expression "iVar1 + 0x204" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar1 + 0x20c)" * (cast_expression "(undefined4 *)(iVar1 + 0x20c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20c)" ( (binary_expression "iVar1 + 0x20c" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));" (call_expression "FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500))" identifier (argument_list "(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500))" ( (binary_expression "iVar1 + 0x1ec" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar1 + 500)" * (cast_expression "(undefined4 *)(iVar1 + 500)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 500)" ( (binary_expression "iVar1 + 500" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_00;" (assignment_expression "uVar9 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x1d8) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x1d8) != 0" (pointer_expression "*(int *)(iVar1 + 0x1d8)" * (cast_expression "(int *)(iVar1 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x1d8));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x1d8))" identifier (argument_list "(*(int *)(iVar1 + 0x1d8))" ( (pointer_expression "*(int *)(iVar1 + 0x1d8)" * (cast_expression "(int *)(iVar1 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_01;" (assignment_expression "uVar9 = extraout_ECX_01" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x1b0) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x1b0) != 0" (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x1b0));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x1b0))" identifier (argument_list "(*(int *)(iVar1 + 0x1b0))" ( (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_02;" (assignment_expression "uVar9 = extraout_ECX_02" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x154) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x154) != 0" (pointer_expression "*(int *)(iVar1 + 0x154)" * (cast_expression "(int *)(iVar1 + 0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x154)" ( (binary_expression "iVar1 + 0x154" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x154));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x154))" identifier (argument_list "(*(int *)(iVar1 + 0x154))" ( (pointer_expression "*(int *)(iVar1 + 0x154)" * (cast_expression "(int *)(iVar1 + 0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x154)" ( (binary_expression "iVar1 + 0x154" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_03;" (assignment_expression "uVar9 = extraout_ECX_03" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x148) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x148) != 0" (pointer_expression "*(int *)(iVar1 + 0x148)" * (cast_expression "(int *)(iVar1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x148)" ( (binary_expression "iVar1 + 0x148" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x148));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x148))" identifier (argument_list "(*(int *)(iVar1 + 0x148))" ( (pointer_expression "*(int *)(iVar1 + 0x148)" * (cast_expression "(int *)(iVar1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x148)" ( (binary_expression "iVar1 + 0x148" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_04;" (assignment_expression "uVar9 = extraout_ECX_04" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x13c) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x13c) != 0" (pointer_expression "*(int *)(iVar1 + 0x13c)" * (cast_expression "(int *)(iVar1 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x13c)" ( (binary_expression "iVar1 + 0x13c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x13c));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x13c))" identifier (argument_list "(*(int *)(iVar1 + 0x13c))" ( (pointer_expression "*(int *)(iVar1 + 0x13c)" * (cast_expression "(int *)(iVar1 + 0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x13c)" ( (binary_expression "iVar1 + 0x13c" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_05;" (assignment_expression "uVar9 = extraout_ECX_05" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x130) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x130) != 0" (pointer_expression "*(int *)(iVar1 + 0x130)" * (cast_expression "(int *)(iVar1 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x130));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x130))" identifier (argument_list "(*(int *)(iVar1 + 0x130))" ( (pointer_expression "*(int *)(iVar1 + 0x130)" * (cast_expression "(int *)(iVar1 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_06;" (assignment_expression "uVar9 = extraout_ECX_06" identifier = identifier) ;) })) (if_statement "if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0x124) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x124) != 0" (pointer_expression "*(int *)(iVar1 + 0x124)" * (cast_expression "(int *)(iVar1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x124));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x124))" identifier (argument_list "(*(int *)(iVar1 + 0x124))" ( (pointer_expression "*(int *)(iVar1 + 0x124)" * (cast_expression "(int *)(iVar1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = extraout_ECX_07;" (assignment_expression "uVar9 = extraout_ECX_07" identifier = identifier) ;) })) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0x110);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0x110)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0x110)" * (cast_expression "(undefined4 **)(iVar1 + 0x110)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x110)" ( (binary_expression "iVar1 + 0x110" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }" { (expression_statement "puVar2 = (undefined4 *)*puVar4;" (assignment_expression "puVar2 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) (expression_statement "uVar9 = extraout_ECX_08;" (assignment_expression "uVar9 = extraout_ECX_08" identifier = identifier) ;) })) (expression_statement "sVar3 = *(int *)(iVar1 + 0x10c) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0x10c) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0x10c) << 2" (pointer_expression "*(int *)(iVar1 + 0x10c)" * (cast_expression "(int *)(iVar1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10c)" ( (binary_expression "iVar1 + 0x10c" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0x108),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0x108),0,sVar3)" identifier (argument_list "(*(void **)(iVar1 + 0x108),0,sVar3)" ( (pointer_expression "*(void **)(iVar1 + 0x108)" * (cast_expression "(void **)(iVar1 + 0x108)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x114) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x114) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x114)" * (cast_expression "(undefined4 *)(iVar1 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x114)" ( (binary_expression "iVar1 + 0x114" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x110) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x110) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x110)" * (cast_expression "(undefined4 *)(iVar1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x110)" ( (binary_expression "iVar1 + 0x110" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = extraout_EDX_01;" (assignment_expression "uVar7 = extraout_EDX_01" identifier = identifier) ;) (if_statement "if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108))" ( (binary_expression "*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)" (pointer_expression "*(int *)(unaff_EBP + -0x38)" * (cast_expression "(int *)(unaff_EBP + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x38)" ( (binary_expression "unaff_EBP + -0x38" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar1 + 0x108)" * (cast_expression "(int *)(iVar1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9)" identifier (argument_list "(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9)" ( (pointer_expression "*(int *)(iVar1 + 0x108)" * (cast_expression "(int *)(iVar1 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x108)" ( (binary_expression "iVar1 + 0x108" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) (expression_statement "uVar7 = extraout_EDX_05;" (assignment_expression "uVar7 = extraout_EDX_05" identifier = identifier) ;) })) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0xf4);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0xf4)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + 0xf4)" * (cast_expression "(undefined4 **)(iVar1 + 0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xf4)" ( (binary_expression "iVar1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(unaff_EBP + 8) = iVar1;" (assignment_expression "*(int *)(unaff_EBP + 8) = iVar1" (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" identifier = (pointer_expression "*(int *)(unaff_EBP + 8)" * (cast_expression "(int *)(unaff_EBP + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 8)" ( (binary_expression "unaff_EBP + 8" identifier + number_literal) ))))) ;) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" while (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" { (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) )))) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "FUN_000a5970(puVar4 + 7);" (call_expression "FUN_000a5970(puVar4 + 7)" identifier (argument_list "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) ))) ;) (if_statement "if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }" if (parenthesized_expression "((undefined4 *)puVar4[1] != puVar4 + 3)" ( (binary_expression "(undefined4 *)puVar4[1] != puVar4 + 3" (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) != (binary_expression "puVar4 + 3" identifier + number_literal)) )) (compound_statement "{\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }" { (expression_statement "FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);" (call_expression "FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9)" identifier (argument_list "((undefined4 *)puVar4[1],uVar8,sVar3,uVar9)" ( (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ])) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "uVar7 = extraout_EDX_06;" (assignment_expression "uVar7 = extraout_EDX_06" identifier = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" * (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x30)" ( (binary_expression "unaff_EBP + -0x30" identifier + number_literal) ))))) ;) })) (expression_statement "sVar3 = *(int *)(iVar1 + 0xf0) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0xf0) << 2" identifier = (binary_expression "*(int *)(iVar1 + 0xf0) << 2" (pointer_expression "*(int *)(iVar1 + 0xf0)" * (cast_expression "(int *)(iVar1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf0)" ( (binary_expression "iVar1 + 0xf0" identifier + number_literal) )))) << number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "memset(*(void **)(iVar1 + 0xec),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0xec),0,sVar3)" identifier (argument_list "(*(void **)(iVar1 + 0xec),0,sVar3)" ( (pointer_expression "*(void **)(iVar1 + 0xec)" * (cast_expression "(void **)(iVar1 + 0xec)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) )))) , number_literal , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf8)" * (cast_expression "(undefined4 *)(iVar1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf8)" ( (binary_expression "iVar1 + 0xf8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xf4) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf4) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf4)" * (cast_expression "(undefined4 *)(iVar1 + 0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xf4)" ( (binary_expression "iVar1 + 0xf4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }" if (parenthesized_expression "(*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec))" ( (binary_expression "*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)" (pointer_expression "*(int *)(unaff_EBP + -0x34)" * (cast_expression "(int *)(unaff_EBP + -0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x34)" ( (binary_expression "unaff_EBP + -0x34" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar1 + 0xec)" * (cast_expression "(int *)(iVar1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }" { (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7)" identifier (argument_list "(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7)" ( (pointer_expression "*(int *)(iVar1 + 0xec)" * (cast_expression "(int *)(iVar1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xec)" ( (binary_expression "iVar1 + 0xec" identifier + number_literal) )))) , identifier , identifier , identifier ))) ;) })) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x28))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x28)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x28)" ( (binary_expression "unaff_EBP + -0x28" identifier + number_literal) )))) ))) ;) (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x2c)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x2c)" ( (binary_expression "unaff_EBP + -0x2c" identifier + number_literal) ))))) ;) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x24))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x24)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x24)" ( (binary_expression "unaff_EBP + -0x24" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x20))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x20)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x20)" ( (binary_expression "unaff_EBP + -0x20" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_0027dd80(uVar9);" (call_expression "FUN_0027dd80(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT ))) ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) ))))) ;) (for_statement for ( ; (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_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) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_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) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_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) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })))
(function_definition "void __regparm3 FUN_0002ab68(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    \n  FUN_0027dd80(uVar9);\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0002ab68(undefined4 param_1)" (identifier "FUN_0002ab68") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  undefined4 extraout_ECX_03;\n  undefined4 extraout_ECX_04;\n  undefined4 extraout_ECX_05;\n  undefined4 extraout_ECX_06;\n  undefined4 extraout_ECX_07;\n  undefined4 extraout_ECX_08;\n  int *extraout_EDX;\n  int *extraout_EDX_00;\n  int *piVar5;\n  undefined4 extraout_EDX_01;\n  int *extraout_EDX_02;\n  int *extraout_EDX_03;\n  int *extraout_EDX_04;\n  undefined4 extraout_EDX_05;\n  undefined4 extraout_EDX_06;\n  int unaff_EBP;\n  int unaff_ESI;\n  int *unaff_EDI;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0x44) = param_1;\n  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);\n  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);\n  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }\n  if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }\n  FUN_001e6d90();\n  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);\n  piVar5 = extraout_EDX;\n  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }\n  piVar6 = *(int **)(unaff_ESI + 0x238);\n  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);\n  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }\n  if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }\n  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);\n  *(int *)(unaff_EBP + 8) = unaff_ESI;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n  sVar3 = *(int *)(iVar1 + 0x220) << 2;\n  uVar7 = 0;\n  memset(*(void **)(iVar1 + 0x21c),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x228) = 0;\n  *(undefined4 *)(iVar1 + 0x224) = 0;\n  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }\n  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);\n  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));\n  uVar9 = extraout_ECX_00;\n  if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }\n  if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }\n  if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }\n  if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }\n  if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }\n  if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }\n  if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0x110);\n  while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }\n  sVar3 = *(int *)(iVar1 + 0x10c) << 2;\n  uVar8 = 0;\n  memset(*(void **)(iVar1 + 0x108),0,sVar3);\n  *(undefined4 *)(iVar1 + 0x114) = 0;\n  *(undefined4 *)(iVar1 + 0x110) = 0;\n  uVar7 = extraout_EDX_01;\n  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }\n  puVar4 = *(undefined4 **)(iVar1 + 0xf4);\n  *(int *)(unaff_EBP + 8) = iVar1;\n  iVar1 = *(int *)(unaff_EBP + 8);\n  while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }\n  sVar3 = *(int *)(iVar1 + 0xf0) << 2;\n  uVar9 = 0;\n  memset(*(void **)(iVar1 + 0xec),0,sVar3);\n  *(undefined4 *)(iVar1 + 0xf8) = 0;\n  *(undefined4 *)(iVar1 + 0xf4) = 0;\n  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));\n  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));\n  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));\n                    \n  FUN_0027dd80(uVar9);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "undefined4 extraout_ECX_01;" (type_identifier "undefined4") (identifier "extraout_ECX_01") (; ";")) (declaration "undefined4 extraout_ECX_02;" (type_identifier "undefined4") (identifier "extraout_ECX_02") (; ";")) (declaration "undefined4 extraout_ECX_03;" (type_identifier "undefined4") (identifier "extraout_ECX_03") (; ";")) (declaration "undefined4 extraout_ECX_04;" (type_identifier "undefined4") (identifier "extraout_ECX_04") (; ";")) (declaration "undefined4 extraout_ECX_05;" (type_identifier "undefined4") (identifier "extraout_ECX_05") (; ";")) (declaration "undefined4 extraout_ECX_06;" (type_identifier "undefined4") (identifier "extraout_ECX_06") (; ";")) (declaration "undefined4 extraout_ECX_07;" (type_identifier "undefined4") (identifier "extraout_ECX_07") (; ";")) (declaration "undefined4 extraout_ECX_08;" (type_identifier "undefined4") (identifier "extraout_ECX_08") (; ";")) (declaration "int *extraout_EDX;" (primitive_type "int") (pointer_declarator "*extraout_EDX" (* "*") (identifier "extraout_EDX")) (; ";")) (declaration "int *extraout_EDX_00;" (primitive_type "int") (pointer_declarator "*extraout_EDX_00" (* "*") (identifier "extraout_EDX_00")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 extraout_EDX_01;" (type_identifier "undefined4") (identifier "extraout_EDX_01") (; ";")) (declaration "int *extraout_EDX_02;" (primitive_type "int") (pointer_declarator "*extraout_EDX_02" (* "*") (identifier "extraout_EDX_02")) (; ";")) (declaration "int *extraout_EDX_03;" (primitive_type "int") (pointer_declarator "*extraout_EDX_03" (* "*") (identifier "extraout_EDX_03")) (; ";")) (declaration "int *extraout_EDX_04;" (primitive_type "int") (pointer_declarator "*extraout_EDX_04" (* "*") (identifier "extraout_EDX_04")) (; ";")) (declaration "undefined4 extraout_EDX_05;" (type_identifier "undefined4") (identifier "extraout_EDX_05") (; ";")) (declaration "undefined4 extraout_EDX_06;" (type_identifier "undefined4") (identifier "extraout_EDX_06") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int unaff_ESI;" (primitive_type "int") (identifier "unaff_ESI") (; ";")) (declaration "int *unaff_EDI;" (primitive_type "int") (pointer_declarator "*unaff_EDI" (* "*") (identifier "unaff_EDI")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + -0x44) = param_1;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x44) = param_1" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x44)" (( "(") (binary_expression "unaff_EBP + -0x44" (identifier "unaff_EBP") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);" (call_expression "FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1)" (identifier "FUN_001e6d90") (argument_list "(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1)" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x2c)" (( "(") (binary_expression "unaff_EBP + -0x2c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x2c")) () ")")))) (, ",") (number_literal "0x4c") (, ",") (identifier "param_1") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x2c)" (( "(") (binary_expression "unaff_EBP + -0x2c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x44)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x44)" (( "(") (binary_expression "unaff_EBP + -0x44" (identifier "unaff_EBP") (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (if_statement "if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {\n    FUN_001e6db0(unaff_EDI[3]);\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + -0x30) != unaff_EDI[3])" (( "(") (binary_expression "*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]" (pointer_expression "*(int *)(unaff_EBP + -0x30)" (* "*") (cast_expression "(int *)(unaff_EBP + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")")))) (!= "!=") (subscript_expression "unaff_EDI[3]" (identifier "unaff_EDI") ([ "[") (number_literal "3") (] "]"))) () ")")) (compound_statement "{\n    FUN_001e6db0(unaff_EDI[3]);\n  }" ({ "{") (expression_statement "FUN_001e6db0(unaff_EDI[3]);" (call_expression "FUN_001e6db0(unaff_EDI[3])" (identifier "FUN_001e6db0") (argument_list "(unaff_EDI[3])" (( "(") (subscript_expression "unaff_EDI[3]" (identifier "unaff_EDI") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (*unaff_EDI != 0) {\n    FUN_001e6db0(*unaff_EDI);\n  }" (if "if") (parenthesized_expression "(*unaff_EDI != 0)" (( "(") (binary_expression "*unaff_EDI != 0" (pointer_expression "*unaff_EDI" (* "*") (identifier "unaff_EDI")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*unaff_EDI);\n  }" ({ "{") (expression_statement "FUN_001e6db0(*unaff_EDI);" (call_expression "FUN_001e6db0(*unaff_EDI)" (identifier "FUN_001e6db0") (argument_list "(*unaff_EDI)" (( "(") (pointer_expression "*unaff_EDI" (* "*") (identifier "unaff_EDI")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" (identifier "FUN_001e6d90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);" (call_expression "FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX)" (identifier "FUN_000a5a50") (argument_list "(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX)" (( "(") (binary_expression "unaff_ESI + 0x26c" (identifier "unaff_ESI") (+ "+") (number_literal "0x26c")) (, ",") (pointer_expression "*(undefined4 *)(unaff_ESI + 0x274)" (* "*") (cast_expression "(undefined4 *)(unaff_ESI + 0x274)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_ESI + 0x274)" (( "(") (binary_expression "unaff_ESI + 0x274" (identifier "unaff_ESI") (+ "+") (number_literal "0x274")) () ")")))) (, ",") (identifier "extraout_ECX") (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x248);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x248)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(unaff_ESI + 0x248)" (* "*") (cast_expression "(undefined4 **)(unaff_ESI + 0x248)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_ESI + 0x248)" (( "(") (binary_expression "unaff_ESI + 0x248" (identifier "unaff_ESI") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "piVar5 = extraout_EDX;" (assignment_expression "piVar5 = extraout_EDX" (identifier "piVar5") (= "=") (identifier "extraout_EDX")) (; ";")) (while_statement "while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }" (while "while") (parenthesized_expression "(*(undefined4 **)(unaff_EBP + -0x3c) != puVar4)" (( "(") (binary_expression "*(undefined4 **)(unaff_EBP + -0x3c) != puVar4" (pointer_expression "*(undefined4 **)(unaff_EBP + -0x3c)" (* "*") (cast_expression "(undefined4 **)(unaff_EBP + -0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0x3c)" (( "(") (binary_expression "unaff_EBP + -0x3c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x3c")) () ")")))) (!= "!=") (identifier "puVar4")) () ")")) (compound_statement "{\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    piVar5 = extraout_EDX_02;\n  }" ({ "{") (expression_statement "puVar2 = (undefined4 *)*puVar4;" (assignment_expression "puVar2 = (undefined4 *)*puVar4" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)*puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" (identifier "FUN_001e6db0") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" (identifier "puVar4") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "piVar5 = extraout_EDX_02;" (assignment_expression "piVar5 = extraout_EDX_02" (identifier "piVar5") (= "=") (identifier "extraout_EDX_02")) (; ";")) (} "}"))) (expression_statement "piVar6 = *(int **)(unaff_ESI + 0x238);" (assignment_expression "piVar6 = *(int **)(unaff_ESI + 0x238)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(unaff_ESI + 0x238)" (* "*") (cast_expression "(int **)(unaff_ESI + 0x238)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_ESI + 0x238)" (( "(") (binary_expression "unaff_ESI + 0x238" (identifier "unaff_ESI") (+ "+") (number_literal "0x238")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c)" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_ESI + 0x23c)" (* "*") (cast_expression "(undefined4 *)(unaff_ESI + 0x23c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_ESI + 0x23c)" (( "(") (binary_expression "unaff_ESI + 0x23c" (identifier "unaff_ESI") (+ "+") (number_literal "0x23c")) () ")"))))) (; ";")) (for_statement "for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "*(int **)(unaff_EBP + -0x30) != piVar6" (pointer_expression "*(int **)(unaff_EBP + -0x30)" (* "*") (cast_expression "(int **)(unaff_EBP + -0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")")))) (!= "!=") (identifier "piVar6")) (; ";") (assignment_expression "piVar6 = piVar6 + 6" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 6" (identifier "piVar6") (+ "+") (number_literal "6"))) () ")") (compound_statement "{\n    piVar5 = piVar6 + 2;\n    if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }\n  }" ({ "{") (expression_statement "piVar5 = piVar6 + 2;" (assignment_expression "piVar5 = piVar6 + 2" (identifier "piVar5") (= "=") (binary_expression "piVar6 + 2" (identifier "piVar6") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((int *)*piVar6 != piVar5) {\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }" (if "if") (parenthesized_expression "((int *)*piVar6 != piVar5)" (( "(") (binary_expression "(int *)*piVar6 != piVar5" (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (!= "!=") (identifier "piVar5")) () ")")) (compound_statement "{\n      FUN_001e6db0((int *)*piVar6);\n      piVar5 = extraout_EDX_03;\n    }" ({ "{") (expression_statement "FUN_001e6db0((int *)*piVar6);" (call_expression "FUN_001e6db0((int *)*piVar6)" (identifier "FUN_001e6db0") (argument_list "((int *)*piVar6)" (( "(") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")"))) (; ";")) (expression_statement "piVar5 = extraout_EDX_03;" (assignment_expression "piVar5 = extraout_EDX_03" (identifier "piVar5") (= "=") (identifier "extraout_EDX_03")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(int *)(unaff_ESI + 0x238) != 0) {\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_ESI + 0x238) != 0)" (( "(") (binary_expression "*(int *)(unaff_ESI + 0x238) != 0" (pointer_expression "*(int *)(unaff_ESI + 0x238)" (* "*") (cast_expression "(int *)(unaff_ESI + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_ESI + 0x238)" (( "(") (binary_expression "unaff_ESI + 0x238" (identifier "unaff_ESI") (+ "+") (number_literal "0x238")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));\n    piVar5 = extraout_EDX_00;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(unaff_ESI + 0x238));" (call_expression "FUN_001e6db0(*(int *)(unaff_ESI + 0x238))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(unaff_ESI + 0x238))" (( "(") (pointer_expression "*(int *)(unaff_ESI + 0x238)" (* "*") (cast_expression "(int *)(unaff_ESI + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_ESI + 0x238)" (( "(") (binary_expression "unaff_ESI + 0x238" (identifier "unaff_ESI") (+ "+") (number_literal "0x238")) () ")")))) () ")"))) (; ";")) (expression_statement "piVar5 = extraout_EDX_00;" (assignment_expression "piVar5 = extraout_EDX_00" (identifier "piVar5") (= "=") (identifier "extraout_EDX_00")) (; ";")) (} "}"))) (expression_statement "puVar4 = *(undefined4 **)(unaff_ESI + 0x224);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_ESI + 0x224)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(unaff_ESI + 0x224)" (* "*") (cast_expression "(undefined4 **)(unaff_ESI + 0x224)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_ESI + 0x224)" (( "(") (binary_expression "unaff_ESI + 0x224" (identifier "unaff_ESI") (+ "+") (number_literal "0x224")) () ")"))))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 8) = unaff_ESI;" (assignment_expression "*(int *)(unaff_EBP + 8) = unaff_ESI" (pointer_expression "*(int *)(unaff_EBP + 8)" (* "*") (cast_expression "(int *)(unaff_EBP + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 8)" (( "(") (binary_expression "unaff_EBP + 8" (identifier "unaff_EBP") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "unaff_ESI")) (; ";")) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(unaff_EBP + 8)" (* "*") (cast_expression "(int *)(unaff_EBP + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 8)" (( "(") (binary_expression "unaff_EBP + 8" (identifier "unaff_EBP") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" (while "while") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar2 = (undefined4 *)puVar4[1];\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }\n    FUN_001e6db0(puVar4);\n    piVar5 = extraout_EDX_04;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" ({ "{") (expression_statement "puVar2 = (undefined4 *)puVar4[1];" (assignment_expression "puVar2 = (undefined4 *)puVar4[1]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (if_statement "if (puVar2 != puVar4 + 3) {\n      FUN_001e6db0(puVar2);\n    }" (if "if") (parenthesized_expression "(puVar2 != puVar4 + 3)" (( "(") (binary_expression "puVar2 != puVar4 + 3" (identifier "puVar2") (!= "!=") (binary_expression "puVar4 + 3" (identifier "puVar4") (+ "+") (number_literal "3"))) () ")")) (compound_statement "{\n      FUN_001e6db0(puVar2);\n    }" ({ "{") (expression_statement "FUN_001e6db0(puVar2);" (call_expression "FUN_001e6db0(puVar2)" (identifier "FUN_001e6db0") (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" (identifier "FUN_001e6db0") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "piVar5 = extraout_EDX_04;" (assignment_expression "piVar5 = extraout_EDX_04" (identifier "piVar5") (= "=") (identifier "extraout_EDX_04")) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" (* "*") (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x1c)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x1c)" (( "(") (binary_expression "unaff_EBP + -0x1c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x1c")) () ")"))))) (; ";")) (expression_statement "sVar3 = *(int *)(iVar1 + 0x220) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0x220) << 2" (identifier "sVar3") (= "=") (binary_expression "*(int *)(iVar1 + 0x220) << 2" (pointer_expression "*(int *)(iVar1 + 0x220)" (* "*") (cast_expression "(int *)(iVar1 + 0x220)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x220)" (( "(") (binary_expression "iVar1 + 0x220" (identifier "iVar1") (+ "+") (number_literal "0x220")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "memset(*(void **)(iVar1 + 0x21c),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0x21c),0,sVar3)" (identifier "memset") (argument_list "(*(void **)(iVar1 + 0x21c),0,sVar3)" (( "(") (pointer_expression "*(void **)(iVar1 + 0x21c)" (* "*") (cast_expression "(void **)(iVar1 + 0x21c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x21c)" (( "(") (binary_expression "iVar1 + 0x21c" (identifier "iVar1") (+ "+") (number_literal "0x21c")) () ")")))) (, ",") (number_literal "0") (, ",") (identifier "sVar3") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x228) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x228) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x228)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x228)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x228)" (( "(") (binary_expression "iVar1 + 0x228" (identifier "iVar1") (+ "+") (number_literal "0x228")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x224) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x224) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x224)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x224)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x224)" (( "(") (binary_expression "iVar1 + 0x224" (identifier "iVar1") (+ "+") (number_literal "0x224")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c))" (( "(") (binary_expression "*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)" (pointer_expression "*(int *)(unaff_EBP + -0x40)" (* "*") (cast_expression "(int *)(unaff_EBP + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x40)" (( "(") (binary_expression "unaff_EBP + -0x40" (identifier "unaff_EBP") (+ "+") (number_literal "-0x40")) () ")")))) (!= "!=") (pointer_expression "*(int *)(iVar1 + 0x21c)" (* "*") (cast_expression "(int *)(iVar1 + 0x21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x21c)" (( "(") (binary_expression "iVar1 + 0x21c" (identifier "iVar1") (+ "+") (number_literal "0x21c")) () ")"))))) () ")")) (compound_statement "{\n    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);\n    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);\n  }" ({ "{") (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x1c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x1c)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x1c)" (( "(") (binary_expression "unaff_EBP + -0x1c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x1c")) () ")"))))) (; ";")) (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5)" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5)" (( "(") (pointer_expression "*(int *)(iVar1 + 0x21c)" (* "*") (cast_expression "(int *)(iVar1 + 0x21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x21c)" (( "(") (binary_expression "iVar1 + 0x21c" (identifier "iVar1") (+ "+") (number_literal "0x21c")) () ")")))) (, ",") (identifier "uVar7") (, ",") (identifier "sVar3") (, ",") (identifier "piVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);" (call_expression "FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9)" (identifier "FUN_000a5a00") (argument_list "(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9)" (( "(") (binary_expression "iVar1 + 0x204" (identifier "iVar1") (+ "+") (number_literal "0x204")) (, ",") (pointer_expression "*(undefined4 *)(iVar1 + 0x20c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x20c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x20c)" (( "(") (binary_expression "iVar1 + 0x20c" (identifier "iVar1") (+ "+") (number_literal "0x20c")) () ")")))) (, ",") (identifier "uVar9") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));" (call_expression "FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500))" (identifier "FUN_000a59b0") (argument_list "(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500))" (( "(") (binary_expression "iVar1 + 0x1ec" (identifier "iVar1") (+ "+") (number_literal "0x1ec")) (, ",") (pointer_expression "*(undefined4 *)(iVar1 + 500)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 500)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 500)" (( "(") (binary_expression "iVar1 + 500" (identifier "iVar1") (+ "+") (number_literal "500")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_00;" (assignment_expression "uVar9 = extraout_ECX_00" (identifier "uVar9") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (*(int *)(iVar1 + 0x1d8) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x1d8) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x1d8) != 0" (pointer_expression "*(int *)(iVar1 + 0x1d8)" (* "*") (cast_expression "(int *)(iVar1 + 0x1d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1d8)" (( "(") (binary_expression "iVar1 + 0x1d8" (identifier "iVar1") (+ "+") (number_literal "0x1d8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));\n    uVar9 = extraout_ECX_01;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x1d8));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x1d8))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x1d8))" (( "(") (pointer_expression "*(int *)(iVar1 + 0x1d8)" (* "*") (cast_expression "(int *)(iVar1 + 0x1d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1d8)" (( "(") (binary_expression "iVar1 + 0x1d8" (identifier "iVar1") (+ "+") (number_literal "0x1d8")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_01;" (assignment_expression "uVar9 = extraout_ECX_01" (identifier "uVar9") (= "=") (identifier "extraout_ECX_01")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 0x1b0) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x1b0) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x1b0) != 0" (pointer_expression "*(int *)(iVar1 + 0x1b0)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b0)" (( "(") (binary_expression "iVar1 + 0x1b0" (identifier "iVar1") (+ "+") (number_literal "0x1b0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));\n    uVar9 = extraout_ECX_02;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x1b0));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x1b0))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x1b0))" (( "(") (pointer_expression "*(int *)(iVar1 + 0x1b0)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b0)" (( "(") (binary_expression "iVar1 + 0x1b0" (identifier "iVar1") (+ "+") (number_literal "0x1b0")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_02;" (assignment_expression "uVar9 = extraout_ECX_02" (identifier "uVar9") (= "=") (identifier "extraout_ECX_02")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 0x154) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x154) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x154) != 0" (pointer_expression "*(int *)(iVar1 + 0x154)" (* "*") (cast_expression "(int *)(iVar1 + 0x154)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x154)" (( "(") (binary_expression "iVar1 + 0x154" (identifier "iVar1") (+ "+") (number_literal "0x154")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x154));\n    uVar9 = extraout_ECX_03;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x154));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x154))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x154))" (( "(") (pointer_expression "*(int *)(iVar1 + 0x154)" (* "*") (cast_expression "(int *)(iVar1 + 0x154)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x154)" (( "(") (binary_expression "iVar1 + 0x154" (identifier "iVar1") (+ "+") (number_literal "0x154")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_03;" (assignment_expression "uVar9 = extraout_ECX_03" (identifier "uVar9") (= "=") (identifier "extraout_ECX_03")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 0x148) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x148) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x148) != 0" (pointer_expression "*(int *)(iVar1 + 0x148)" (* "*") (cast_expression "(int *)(iVar1 + 0x148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x148)" (( "(") (binary_expression "iVar1 + 0x148" (identifier "iVar1") (+ "+") (number_literal "0x148")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x148));\n    uVar9 = extraout_ECX_04;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x148));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x148))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x148))" (( "(") (pointer_expression "*(int *)(iVar1 + 0x148)" (* "*") (cast_expression "(int *)(iVar1 + 0x148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x148)" (( "(") (binary_expression "iVar1 + 0x148" (identifier "iVar1") (+ "+") (number_literal "0x148")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_04;" (assignment_expression "uVar9 = extraout_ECX_04" (identifier "uVar9") (= "=") (identifier "extraout_ECX_04")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 0x13c) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x13c) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x13c) != 0" (pointer_expression "*(int *)(iVar1 + 0x13c)" (* "*") (cast_expression "(int *)(iVar1 + 0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x13c)" (( "(") (binary_expression "iVar1 + 0x13c" (identifier "iVar1") (+ "+") (number_literal "0x13c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x13c));\n    uVar9 = extraout_ECX_05;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x13c));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x13c))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x13c))" (( "(") (pointer_expression "*(int *)(iVar1 + 0x13c)" (* "*") (cast_expression "(int *)(iVar1 + 0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x13c)" (( "(") (binary_expression "iVar1 + 0x13c" (identifier "iVar1") (+ "+") (number_literal "0x13c")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_05;" (assignment_expression "uVar9 = extraout_ECX_05" (identifier "uVar9") (= "=") (identifier "extraout_ECX_05")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 0x130) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x130) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x130) != 0" (pointer_expression "*(int *)(iVar1 + 0x130)" (* "*") (cast_expression "(int *)(iVar1 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x130)" (( "(") (binary_expression "iVar1 + 0x130" (identifier "iVar1") (+ "+") (number_literal "0x130")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x130));\n    uVar9 = extraout_ECX_06;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x130));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x130))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x130))" (( "(") (pointer_expression "*(int *)(iVar1 + 0x130)" (* "*") (cast_expression "(int *)(iVar1 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x130)" (( "(") (binary_expression "iVar1 + 0x130" (identifier "iVar1") (+ "+") (number_literal "0x130")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_06;" (assignment_expression "uVar9 = extraout_ECX_06" (identifier "uVar9") (= "=") (identifier "extraout_ECX_06")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar1 + 0x124) != 0) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x124) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x124) != 0" (pointer_expression "*(int *)(iVar1 + 0x124)" (* "*") (cast_expression "(int *)(iVar1 + 0x124)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x124));\n    uVar9 = extraout_ECX_07;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x124));" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x124))" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x124))" (( "(") (pointer_expression "*(int *)(iVar1 + 0x124)" (* "*") (cast_expression "(int *)(iVar1 + 0x124)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_ECX_07;" (assignment_expression "uVar9 = extraout_ECX_07" (identifier "uVar9") (= "=") (identifier "extraout_ECX_07")) (; ";")) (} "}"))) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0x110);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0x110)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0x110)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x110)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x110)" (( "(") (binary_expression "iVar1 + 0x110" (identifier "iVar1") (+ "+") (number_literal "0x110")) () ")"))))) (; ";")) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }" (while "while") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar2 = (undefined4 *)*puVar4;\n    FUN_001e6db0(puVar4);\n    puVar4 = puVar2;\n    uVar9 = extraout_ECX_08;\n  }" ({ "{") (expression_statement "puVar2 = (undefined4 *)*puVar4;" (assignment_expression "puVar2 = (undefined4 *)*puVar4" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)*puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" (identifier "FUN_001e6db0") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" (identifier "puVar4") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "uVar9 = extraout_ECX_08;" (assignment_expression "uVar9 = extraout_ECX_08" (identifier "uVar9") (= "=") (identifier "extraout_ECX_08")) (; ";")) (} "}"))) (expression_statement "sVar3 = *(int *)(iVar1 + 0x10c) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0x10c) << 2" (identifier "sVar3") (= "=") (binary_expression "*(int *)(iVar1 + 0x10c) << 2" (pointer_expression "*(int *)(iVar1 + 0x10c)" (* "*") (cast_expression "(int *)(iVar1 + 0x10c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10c)" (( "(") (binary_expression "iVar1 + 0x10c" (identifier "iVar1") (+ "+") (number_literal "0x10c")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "memset(*(void **)(iVar1 + 0x108),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0x108),0,sVar3)" (identifier "memset") (argument_list "(*(void **)(iVar1 + 0x108),0,sVar3)" (( "(") (pointer_expression "*(void **)(iVar1 + 0x108)" (* "*") (cast_expression "(void **)(iVar1 + 0x108)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x108)" (( "(") (binary_expression "iVar1 + 0x108" (identifier "iVar1") (+ "+") (number_literal "0x108")) () ")")))) (, ",") (number_literal "0") (, ",") (identifier "sVar3") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x114) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x114) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x114)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x114)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x114)" (( "(") (binary_expression "iVar1 + 0x114" (identifier "iVar1") (+ "+") (number_literal "0x114")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x110) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x110) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x110)" (( "(") (binary_expression "iVar1 + 0x110" (identifier "iVar1") (+ "+") (number_literal "0x110")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = extraout_EDX_01;" (assignment_expression "uVar7 = extraout_EDX_01" (identifier "uVar7") (= "=") (identifier "extraout_EDX_01")) (; ";")) (if_statement "if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108))" (( "(") (binary_expression "*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)" (pointer_expression "*(int *)(unaff_EBP + -0x38)" (* "*") (cast_expression "(int *)(unaff_EBP + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x38)" (( "(") (binary_expression "unaff_EBP + -0x38" (identifier "unaff_EBP") (+ "+") (number_literal "-0x38")) () ")")))) (!= "!=") (pointer_expression "*(int *)(iVar1 + 0x108)" (* "*") (cast_expression "(int *)(iVar1 + 0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x108)" (( "(") (binary_expression "iVar1 + 0x108" (identifier "iVar1") (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);\n    uVar7 = extraout_EDX_05;\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9)" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9)" (( "(") (pointer_expression "*(int *)(iVar1 + 0x108)" (* "*") (cast_expression "(int *)(iVar1 + 0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x108)" (( "(") (binary_expression "iVar1 + 0x108" (identifier "iVar1") (+ "+") (number_literal "0x108")) () ")")))) (, ",") (identifier "uVar8") (, ",") (identifier "sVar3") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "uVar7 = extraout_EDX_05;" (assignment_expression "uVar7 = extraout_EDX_05" (identifier "uVar7") (= "=") (identifier "extraout_EDX_05")) (; ";")) (} "}"))) (expression_statement "puVar4 = *(undefined4 **)(iVar1 + 0xf4);" (assignment_expression "puVar4 = *(undefined4 **)(iVar1 + 0xf4)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + 0xf4)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0xf4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0xf4)" (( "(") (binary_expression "iVar1 + 0xf4" (identifier "iVar1") (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (expression_statement "*(int *)(unaff_EBP + 8) = iVar1;" (assignment_expression "*(int *)(unaff_EBP + 8) = iVar1" (pointer_expression "*(int *)(unaff_EBP + 8)" (* "*") (cast_expression "(int *)(unaff_EBP + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 8)" (( "(") (binary_expression "unaff_EBP + 8" (identifier "unaff_EBP") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "iVar1 = *(int *)(unaff_EBP + 8);" (assignment_expression "iVar1 = *(int *)(unaff_EBP + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(unaff_EBP + 8)" (* "*") (cast_expression "(int *)(unaff_EBP + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 8)" (( "(") (binary_expression "unaff_EBP + 8" (identifier "unaff_EBP") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (while_statement "while (puVar4 != (undefined4 *)0x0) {\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" (while "while") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;\n    FUN_000a5970(puVar4 + 7);\n    if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }\n    FUN_001e6db0(puVar4);\n    uVar7 = extraout_EDX_06;\n    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);\n  }" ({ "{") (expression_statement "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0x30) = *puVar4" (pointer_expression "*(undefined4 *)(unaff_EBP + -0x30)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "FUN_000a5970(puVar4 + 7);" (call_expression "FUN_000a5970(puVar4 + 7)" (identifier "FUN_000a5970") (argument_list "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")"))) (; ";")) (if_statement "if ((undefined4 *)puVar4[1] != puVar4 + 3) {\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }" (if "if") (parenthesized_expression "((undefined4 *)puVar4[1] != puVar4 + 3)" (( "(") (binary_expression "(undefined4 *)puVar4[1] != puVar4 + 3" (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (binary_expression "puVar4 + 3" (identifier "puVar4") (+ "+") (number_literal "3"))) () ")")) (compound_statement "{\n      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);\n    }" ({ "{") (expression_statement "FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);" (call_expression "FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9)" (identifier "FUN_001e6db0") (argument_list "((undefined4 *)puVar4[1],uVar8,sVar3,uVar9)" (( "(") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (, ",") (identifier "uVar8") (, ",") (identifier "sVar3") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" (identifier "FUN_001e6db0") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "uVar7 = extraout_EDX_06;" (assignment_expression "uVar7 = extraout_EDX_06" (identifier "uVar7") (= "=") (identifier "extraout_EDX_06")) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(unaff_EBP + -0x30);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_EBP + -0x30)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(unaff_EBP + -0x30)" (* "*") (cast_expression "(undefined4 **)(unaff_EBP + -0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0x30)" (( "(") (binary_expression "unaff_EBP + -0x30" (identifier "unaff_EBP") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (} "}"))) (expression_statement "sVar3 = *(int *)(iVar1 + 0xf0) << 2;" (assignment_expression "sVar3 = *(int *)(iVar1 + 0xf0) << 2" (identifier "sVar3") (= "=") (binary_expression "*(int *)(iVar1 + 0xf0) << 2" (pointer_expression "*(int *)(iVar1 + 0xf0)" (* "*") (cast_expression "(int *)(iVar1 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xf0)" (( "(") (binary_expression "iVar1 + 0xf0" (identifier "iVar1") (+ "+") (number_literal "0xf0")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "memset(*(void **)(iVar1 + 0xec),0,sVar3);" (call_expression "memset(*(void **)(iVar1 + 0xec),0,sVar3)" (identifier "memset") (argument_list "(*(void **)(iVar1 + 0xec),0,sVar3)" (( "(") (pointer_expression "*(void **)(iVar1 + 0xec)" (* "*") (cast_expression "(void **)(iVar1 + 0xec)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0xec)" (( "(") (binary_expression "iVar1 + 0xec" (identifier "iVar1") (+ "+") (number_literal "0xec")) () ")")))) (, ",") (number_literal "0") (, ",") (identifier "sVar3") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0xf8) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf8) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xf8)" (( "(") (binary_expression "iVar1 + 0xf8" (identifier "iVar1") (+ "+") (number_literal "0xf8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0xf4) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xf4) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xf4)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0xf4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xf4)" (( "(") (binary_expression "iVar1 + 0xf4" (identifier "iVar1") (+ "+") (number_literal "0xf4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec))" (( "(") (binary_expression "*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)" (pointer_expression "*(int *)(unaff_EBP + -0x34)" (* "*") (cast_expression "(int *)(unaff_EBP + -0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x34)" (( "(") (binary_expression "unaff_EBP + -0x34" (identifier "unaff_EBP") (+ "+") (number_literal "-0x34")) () ")")))) (!= "!=") (pointer_expression "*(int *)(iVar1 + 0xec)" (* "*") (cast_expression "(int *)(iVar1 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xec)" (( "(") (binary_expression "iVar1 + 0xec" (identifier "iVar1") (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (compound_statement "{\n    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);\n  }" ({ "{") (expression_statement "FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);" (call_expression "FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7)" (identifier "FUN_001e6db0") (argument_list "(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7)" (( "(") (pointer_expression "*(int *)(iVar1 + 0xec)" (* "*") (cast_expression "(int *)(iVar1 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xec)" (( "(") (binary_expression "iVar1 + 0xec" (identifier "iVar1") (+ "+") (number_literal "0xec")) () ")")))) (, ",") (identifier "uVar9") (, ",") (identifier "sVar3") (, ",") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28))" (identifier "FUN_00172a20") (argument_list "(*(undefined4 *)(unaff_EBP + -0x28))" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x28)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x28)" (( "(") (binary_expression "unaff_EBP + -0x28" (identifier "unaff_EBP") (+ "+") (number_literal "-0x28")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);" (assignment_expression "uVar9 = *(undefined4 *)(unaff_EBP + -0x2c)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x2c)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x2c)" (( "(") (binary_expression "unaff_EBP + -0x2c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24))" (identifier "FUN_00172a20") (argument_list "(*(undefined4 *)(unaff_EBP + -0x24))" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x24)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x24)" (( "(") (binary_expression "unaff_EBP + -0x24" (identifier "unaff_EBP") (+ "+") (number_literal "-0x24")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));" (call_expression "FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20))" (identifier "FUN_00172a20") (argument_list "(*(undefined4 *)(unaff_EBP + -0x20))" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x20)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x20)" (( "(") (binary_expression "unaff_EBP + -0x20" (identifier "unaff_EBP") (+ "+") (number_literal "-0x20")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0027dd80(uVar9);" (call_expression "FUN_0027dd80(uVar9)" (identifier "FUN_0027dd80") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* gold::Layout::Layout(int, gold::Script_options*) [clone .cold.732] */

void __thiscall var_16::function_1::function_1(function_1 *this,int param_1,type_1 *param_2)

{
  int var_9;
  type_2 uVar2;
  type_2 *var_7;
  type_2 in_EAX;
  type_2 *var_6;
  int var_1;
  int var_5;
  type_2 *unaff_EDI;
  int iVar5;
  
  *(type_2 *)(var_1 + -0x44) = in_EAX;
  var_2(*(void **)(var_1 + -0x2c),0x4c);
  *(type_2 *)(var_1 + -0x2c) = *(type_2 *)(var_1 + -0x44);
  if (*(void **)(var_1 + -0x30) != (void *)unaff_EDI[3]) {
    var_2((void *)unaff_EDI[3]);
  }
  if ((void *)*unaff_EDI != (void *)0x0) {
    var_2((void *)*unaff_EDI);
  }
  var_2(unaff_EDI,0x48);
  var_15::
  var_14<unsigned_int,var_17::pair<unsigned_int_const,_gold::function_1::var_3>,var_17::_Select1st<var_15::pair<unsigned_int_const,_gold::function_1::var_3>var_4>,var_17::less<unsigned_int>,var_17::allocator<var_15::pair<unsigned_int_const,_gold::function_1::var_3>var_4>var_4>
  ::var_10((var_14<unsigned_int,var_17::pair<unsigned_int_const,_gold::function_1::var_3>,var_17::_Select1st<var_15::pair<unsigned_int_const,_gold::function_1::var_3>var_4>,var_17::less<unsigned_int>,var_17::allocator<var_15::pair<unsigned_int_const,_gold::Layout::var_3>var_4>var_4>
              *)(var_5 + 0x26c),*(type_3 *)(var_5 + 0x274));
  var_6 = *(type_2 **)(var_5 + 0x248);
  while (*(type_2 **)(var_1 + -0x3c) != var_6) {
    var_7 = (type_2 *)*var_6;
    var_2(var_6);
    var_6 = var_7;
  }
  var_6 = *(type_2 **)(var_5 + 0x238);
  *(type_2 *)(var_1 + -0x30) = *(type_2 *)(var_5 + 0x23c);
  for (; *(type_2 **)(var_1 + -0x30) != var_6; var_6 = var_6 + 6) {
    if ((type_2 *)*var_6 != var_6 + 2) {
      var_2((type_2 *)*var_6);
    }
  }
  if (*(void **)(var_5 + 0x238) != (void *)0x0) {
    var_2(*(void **)(var_5 + 0x238));
  }
  var_6 = *(type_2 **)(var_5 + 0x224);
  *(int *)(var_1 + 8) = var_5;
  var_9 = *(int *)(var_1 + 8);
  while (var_6 != (type_2 *)0x0) {
    var_7 = (type_2 *)var_6[1];
    *(type_2 *)(var_1 + -0x30) = *var_6;
    if (var_7 != var_6 + 3) {
      var_2(var_7);
    }
    var_2(var_6);
    var_6 = *(type_2 **)(var_1 + -0x30);
  }
  var_8(*(void **)(var_9 + 0x21c),0,*(int *)(var_9 + 0x220) << 2);
  *(type_2 *)(var_9 + 0x228) = 0;
  *(type_2 *)(var_9 + 0x224) = 0;
  if (*(void **)(var_1 + -0x40) != *(void **)(var_9 + 0x21c)) {
    var_2(*(void **)(var_9 + 0x21c));
  }
  var_15::
  var_14<var_15::pair<const_gold::var_12*,var_13>,var_17::pair<var_18::pair<const_gold::var_12*,var_13>,_gold::function_1::var_11*>,var_17::_Select1st<var_15::pair<var_18::pair<const_gold::var_12*,var_13>,_gold::function_1::var_11*>var_4>,var_17::less<var_15::pair<const_gold::var_12*,var_13>var_4>,var_17::allocator<var_15::pair<var_18::pair<const_gold::var_12*,var_13>,_gold::function_1::var_11*>var_4>var_4>
  ::var_10((var_14<var_15::pair<const_gold::var_12*,var_13>,var_17::pair<var_18::pair<const_gold::var_12*,var_13>,_gold::function_1::var_11*>,var_17::_Select1st<var_15::pair<var_18::pair<const_gold::var_12*,var_13>,_gold::function_1::var_11*>var_4>,var_17::less<var_15::pair<const_gold::var_12*,var_13>var_4>,var_17::allocator<var_15::pair<var_18::pair<const_gold::var_12*,var_13>,_gold::function_1::var_11*>var_4>var_4>
              *)(var_9 + 0x204),*(type_3 *)(var_9 + 0x20c));
  var_15::
  var_14<var_15::pair<var_16::var_12*,var_13>,var_17::pair<var_18::pair<var_16::var_12*,var_13>,var_13>,var_17::_Select1st<var_15::pair<var_18::pair<var_16::var_12*,var_13>,var_13>var_4>,var_17::less<var_15::pair<var_16::var_12*,var_13>var_4>,var_17::allocator<var_15::pair<var_18::pair<var_16::var_12*,var_13>,var_13>var_4>var_4>
  ::var_10((var_14<var_15::pair<var_16::var_12*,var_13>,var_17::pair<var_18::pair<var_16::var_12*,var_13>,var_13>,var_17::_Select1st<var_15::pair<var_18::pair<var_16::var_12*,var_13>,var_13>var_4>,var_17::less<var_15::pair<var_16::var_12*,var_13>var_4>,var_17::allocator<var_15::pair<var_18::pair<var_16::var_12*,var_13>,var_13>var_4>var_4>
              *)(var_9 + 0x1ec),*(type_3 *)(var_9 + 500));
  if (*(void **)(var_9 + 0x1d8) != (void *)0x0) {
    var_2(*(void **)(var_9 + 0x1d8));
  }
  if (*(void **)(var_9 + 0x1b0) != (void *)0x0) {
    var_2(*(void **)(var_9 + 0x1b0));
  }
  if (*(void **)(var_9 + 0x154) != (void *)0x0) {
    var_2(*(void **)(var_9 + 0x154));
  }
  if (*(void **)(var_9 + 0x148) != (void *)0x0) {
    var_2(*(void **)(var_9 + 0x148));
  }
  if (*(void **)(var_9 + 0x13c) != (void *)0x0) {
    var_2(*(void **)(var_9 + 0x13c));
  }
  if (*(void **)(var_9 + 0x130) != (void *)0x0) {
    var_2(*(void **)(var_9 + 0x130));
  }
  if (*(void **)(var_9 + 0x124) != (void *)0x0) {
    var_2(*(void **)(var_9 + 0x124));
  }
  var_6 = *(type_2 **)(var_9 + 0x110);
  while (var_6 != (type_2 *)0x0) {
    var_7 = (type_2 *)*var_6;
    var_2(var_6);
    var_6 = var_7;
  }
  iVar5 = 0;
  var_8(*(void **)(var_9 + 0x108),0,*(int *)(var_9 + 0x10c) << 2);
  *(type_2 *)(var_9 + 0x114) = 0;
  *(type_2 *)(var_9 + 0x110) = 0;
  if (*(void **)(var_1 + -0x38) != *(void **)(var_9 + 0x108)) {
    var_2(*(void **)(var_9 + 0x108));
  }
  var_6 = *(type_2 **)(var_9 + 0xf4);
  *(int *)(var_1 + 8) = var_9;
  var_9 = *(int *)(var_1 + 8);
  while (var_6 != (type_2 *)0x0) {
    *(type_2 *)(var_1 + -0x30) = *var_6;
    Kept_section::~var_19((var_19 *)(var_6 + 7),iVar5);
    if ((type_2 *)var_6[1] != var_6 + 3) {
      var_2((type_2 *)var_6[1]);
    }
    var_2(var_6);
    var_6 = *(type_2 **)(var_1 + -0x30);
  }
  iVar5 = 0;
  var_8(*(void **)(var_9 + 0xec),0,*(int *)(var_9 + 0xf0) << 2);
  *(type_2 *)(var_9 + 0xf8) = 0;
  *(type_2 *)(var_9 + 0xf4) = 0;
  if (*(void **)(var_1 + -0x34) != *(void **)(var_9 + 0xec)) {
    var_2(*(void **)(var_9 + 0xec));
  }
  var_20<var_21>::~var_20
            (*(var_20<var_21> **)(var_1 + -0x28),iVar5);
  uVar2 = *(type_2 *)(var_1 + -0x2c);
  var_20<var_21>::~var_20
            (*(var_20<var_21> **)(var_1 + -0x24),iVar5);
  var_20<var_21>::~var_20
            (*(var_20<var_21> **)(var_1 + -0x20),iVar5);
                    /* WARNING: Subroutine does not return */
  var_22(uVar2);
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))) (number_literal) (identifier) (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_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)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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))))) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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))))))) (for_statement condition: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) consequence: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (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))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (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: (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))) (if_statement condition: (parenthesized_expression (binary_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: (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: (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 (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))))) (identifier) (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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))))) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (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: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_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: (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 (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))))) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (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))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (identifier) (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (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: (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))) (if_statement condition: (parenthesized_expression (binary_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: (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 (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))))) (identifier) (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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 (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 (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)))))))

void __regparm3 MASKED(undefined4 param_1)

{
  int iVar1;
  undefined4 *puVar2;
  size_t sVar3;
  undefined4 *puVar4;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  undefined4 extraout_ECX_02;
  undefined4 extraout_ECX_03;
  undefined4 extraout_ECX_04;
  undefined4 extraout_ECX_05;
  undefined4 extraout_ECX_06;
  undefined4 extraout_ECX_07;
  undefined4 extraout_ECX_08;
  int *extraout_EDX;
  int *extraout_EDX_00;
  int *piVar5;
  undefined4 extraout_EDX_01;
  int *extraout_EDX_02;
  int *extraout_EDX_03;
  int *extraout_EDX_04;
  undefined4 extraout_EDX_05;
  undefined4 extraout_EDX_06;
  int unaff_EBP;
  int unaff_ESI;
  int *unaff_EDI;
  int *piVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  
  *(undefined4 *)(unaff_EBP + -0x44) = param_1;
  FUN_001e6d90(*(undefined4 *)(unaff_EBP + -0x2c),0x4c,param_1,param_1);
  *(undefined4 *)(unaff_EBP + -0x2c) = *(undefined4 *)(unaff_EBP + -0x44);
  if (*(int *)(unaff_EBP + -0x30) != unaff_EDI[3]) {
    FUN_001e6db0(unaff_EDI[3]);
  }
  if (*unaff_EDI != 0) {
    FUN_001e6db0(*unaff_EDI);
  }
  FUN_001e6d90();
  FUN_000a5a50(unaff_ESI + 0x26c,*(undefined4 *)(unaff_ESI + 0x274),extraout_ECX,extraout_ECX);
  puVar4 = *(undefined4 **)(unaff_ESI + 0x248);
  piVar5 = extraout_EDX;
  while (*(undefined4 **)(unaff_EBP + -0x3c) != puVar4) {
    puVar2 = (undefined4 *)*puVar4;
    FUN_001e6db0(puVar4);
    puVar4 = puVar2;
    piVar5 = extraout_EDX_02;
  }
  piVar6 = *(int **)(unaff_ESI + 0x238);
  *(undefined4 *)(unaff_EBP + -0x30) = *(undefined4 *)(unaff_ESI + 0x23c);
  for (; *(int **)(unaff_EBP + -0x30) != piVar6; piVar6 = piVar6 + 6) {
    piVar5 = piVar6 + 2;
    if ((int *)*piVar6 != piVar5) {
      FUN_001e6db0((int *)*piVar6);
      piVar5 = extraout_EDX_03;
    }
  }
  if (*(int *)(unaff_ESI + 0x238) != 0) {
    FUN_001e6db0(*(int *)(unaff_ESI + 0x238));
    piVar5 = extraout_EDX_00;
  }
  puVar4 = *(undefined4 **)(unaff_ESI + 0x224);
  *(int *)(unaff_EBP + 8) = unaff_ESI;
  iVar1 = *(int *)(unaff_EBP + 8);
  while (puVar4 != (undefined4 *)0x0) {
    puVar2 = (undefined4 *)puVar4[1];
    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;
    if (puVar2 != puVar4 + 3) {
      FUN_001e6db0(puVar2);
    }
    FUN_001e6db0(puVar4);
    piVar5 = extraout_EDX_04;
    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);
  }
  uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);
  sVar3 = *(int *)(iVar1 + 0x220) << 2;
  uVar7 = 0;
  memset(*(void **)(iVar1 + 0x21c),0,sVar3);
  *(undefined4 *)(iVar1 + 0x228) = 0;
  *(undefined4 *)(iVar1 + 0x224) = 0;
  if (*(int *)(unaff_EBP + -0x40) != *(int *)(iVar1 + 0x21c)) {
    uVar9 = *(undefined4 *)(unaff_EBP + -0x1c);
    FUN_001e6db0(*(int *)(iVar1 + 0x21c),uVar7,sVar3,piVar5);
  }
  FUN_000a5a00(iVar1 + 0x204,*(undefined4 *)(iVar1 + 0x20c),uVar9,uVar9);
  FUN_000a59b0(iVar1 + 0x1ec,*(undefined4 *)(iVar1 + 500));
  uVar9 = extraout_ECX_00;
  if (*(int *)(iVar1 + 0x1d8) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x1d8));
    uVar9 = extraout_ECX_01;
  }
  if (*(int *)(iVar1 + 0x1b0) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x1b0));
    uVar9 = extraout_ECX_02;
  }
  if (*(int *)(iVar1 + 0x154) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x154));
    uVar9 = extraout_ECX_03;
  }
  if (*(int *)(iVar1 + 0x148) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x148));
    uVar9 = extraout_ECX_04;
  }
  if (*(int *)(iVar1 + 0x13c) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x13c));
    uVar9 = extraout_ECX_05;
  }
  if (*(int *)(iVar1 + 0x130) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x130));
    uVar9 = extraout_ECX_06;
  }
  if (*(int *)(iVar1 + 0x124) != 0) {
    FUN_001e6db0(*(int *)(iVar1 + 0x124));
    uVar9 = extraout_ECX_07;
  }
  puVar4 = *(undefined4 **)(iVar1 + 0x110);
  while (puVar4 != (undefined4 *)0x0) {
    puVar2 = (undefined4 *)*puVar4;
    FUN_001e6db0(puVar4);
    puVar4 = puVar2;
    uVar9 = extraout_ECX_08;
  }
  sVar3 = *(int *)(iVar1 + 0x10c) << 2;
  uVar8 = 0;
  memset(*(void **)(iVar1 + 0x108),0,sVar3);
  *(undefined4 *)(iVar1 + 0x114) = 0;
  *(undefined4 *)(iVar1 + 0x110) = 0;
  uVar7 = extraout_EDX_01;
  if (*(int *)(unaff_EBP + -0x38) != *(int *)(iVar1 + 0x108)) {
    FUN_001e6db0(*(int *)(iVar1 + 0x108),uVar8,sVar3,uVar9);
    uVar7 = extraout_EDX_05;
  }
  puVar4 = *(undefined4 **)(iVar1 + 0xf4);
  *(int *)(unaff_EBP + 8) = iVar1;
  iVar1 = *(int *)(unaff_EBP + 8);
  while (puVar4 != (undefined4 *)0x0) {
    *(undefined4 *)(unaff_EBP + -0x30) = *puVar4;
    FUN_000a5970(puVar4 + 7);
    if ((undefined4 *)puVar4[1] != puVar4 + 3) {
      FUN_001e6db0((undefined4 *)puVar4[1],uVar8,sVar3,uVar9);
    }
    FUN_001e6db0(puVar4);
    uVar7 = extraout_EDX_06;
    puVar4 = *(undefined4 **)(unaff_EBP + -0x30);
  }
  sVar3 = *(int *)(iVar1 + 0xf0) << 2;
  uVar9 = 0;
  memset(*(void **)(iVar1 + 0xec),0,sVar3);
  *(undefined4 *)(iVar1 + 0xf8) = 0;
  *(undefined4 *)(iVar1 + 0xf4) = 0;
  if (*(int *)(unaff_EBP + -0x34) != *(int *)(iVar1 + 0xec)) {
    FUN_001e6db0(*(int *)(iVar1 + 0xec),uVar9,sVar3,uVar7);
  }
  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x28));
  uVar9 = *(undefined4 *)(unaff_EBP + -0x2c);
  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x24));
  FUN_00172a20(*(undefined4 *)(unaff_EBP + -0x20));
                    /* WARNING: Subroutine does not return */
  FUN_0027dd80(uVar9);
}

