
/* WARNING: Enum "DT": Some values do not have unique names */
/* gold::Output_section_element_input::set_section_addresses(gold::Symbol_table*, gold::Layout*,
   gold::Output_section*, unsigned long long, unsigned long long*, unsigned long long*,
   gold::Output_section**, std::string*, std::list<gold::Output_section::Input_section,
   std::allocator<gold::Output_section::Input_section> >*) [clone .cold.381] */

void gold::Output_section_element_input::set_section_addresses
               (Symbol_table *param_1,Layout *param_2,Output_section *param_3,ulonglong param_4,
               ulonglong *param_5,ulonglong *param_6,Output_section **param_7,string *param_8,
               list *param_9)

{
  undefined4 uVar1;
  undefined4 *puVar2;
  void *pvVar3;
  undefined4 in_ECX;
  int unaff_EBP;
  int iVar4;
  int *piVar5;
  int iVar6;
  nothrow_t *pnVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  
  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;
  *(undefined4 *)(unaff_EBP + -0xb0) = 0;
  for (iVar4 = 0; iVar4 != 0; iVar4 = iVar4 + 0x40) {
    if (*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)) {
      operator_delete(*(void **)(iVar4 + 0x18));
    }
  }
  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);
  pnVar7 = *(nothrow_t **)(unaff_EBP + -0xfc);
  uVar8 = uVar1;
  uVar9 = uVar1;
  operator_delete(*(void **)(unaff_EBP + -0xb0),pnVar7);
  piVar5 = *(int **)(unaff_EBP + -0x110);
  while (piVar5 != *(int **)(unaff_EBP + -0x10c)) {
    iVar4 = piVar5[1];
    iVar6 = *piVar5;
    *(int **)(unaff_EBP + -0xc0) = piVar5;
    *(int *)(unaff_EBP + -0xb0) = iVar4;
    for (; *(int *)(unaff_EBP + -0xb0) != iVar6; iVar6 = iVar6 + 0x40) {
      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {
        operator_delete(*(void **)(iVar6 + 0x18));
      }
    }
    puVar2 = *(undefined4 **)(unaff_EBP + -0xc0);
    pvVar3 = (void *)*puVar2;
    if (pvVar3 != (void *)0x0) {
      operator_delete(pvVar3);
    }
    piVar5 = puVar2 + 3;
  }
  operator_delete(*(void **)(unaff_EBP + -0x110));
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume(uVar1,pnVar7,uVar8,uVar9);
}



void FUN_0002cf54(void)

{
  undefined4 uVar1;
  undefined4 in_ECX;
  int unaff_EBP;
  int iVar2;
  int *piVar3;
  int iVar4;
  
  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;
  *(undefined4 *)(unaff_EBP + -0xb0) = 0;
  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {
    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {
      FUN_001807a0(*(int *)(iVar2 + 0x18));
    }
  }
  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);
  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);
  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);
      piVar3 = piVar3 + 3) {
    iVar2 = piVar3[1];
    iVar4 = *piVar3;
    *(int **)(unaff_EBP + -0xc0) = piVar3;
    *(int *)(unaff_EBP + -0xb0) = iVar2;
    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {
      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {
        FUN_001807a0(*(int *)(iVar4 + 0x18));
      }
    }
    piVar3 = *(int **)(unaff_EBP + -0xc0);
    iVar2 = *piVar3;
    if (iVar2 != 0) {
      FUN_001807a0(iVar2);
    }
  }
  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));
                    /* WARNING: Subroutine does not return */
  FUN_00217770(uVar1);
}


XOR ESI,ESI
XOR EDI,EDI
SHL ESI,0x6
MOV dword ptr [EBP + 0xffffff40],ECX
MOV EAX,EDI
ADD ESI,EDI
MOV dword ptr [EBP + 0xffffff50],EDI
MOV EDI,ESI
MOV ESI,EAX
CMP EDI,ESI
JNZ 0x0002d103
MOV EAX,dword ptr [EBP + 0xffffff40]
MOV EDI,dword ptr [EBP + 0xffffff50]
MOV EBX,dword ptr [EBP + 0xffffff4c]
MOV ESI,EAX
PUSH EAX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff04]
PUSH EDI
CALL 0x00180760
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xfffffef0]
MOV EDI,EAX
MOV ECX,dword ptr [EBP + 0xfffffef4]
MOV EAX,EDI
CMP EDI,ECX
JNZ 0x0002d09d
SUB ESP,0xc
MOV EDI,dword ptr [EBP + 0xffffff4c]
PUSH dword ptr [EBP + 0xfffffef0]
MOV EBX,EDI
CALL 0x001807a0
MOV dword ptr [ESP],ESI
CALL 0x00217770
MOV EAX,dword ptr [ESI + 0x18]
LEA EDX,[ESI + 0x20]
CMP EAX,EDX
JZ 0x0002d11f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff4c]
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
ADD ESI,0x40
JMP 0x0002cf6f
(translation_unit "void FUN_0002cf54(void)\n\n{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    /* WARNING: Subroutine does not return */\n  FUN_00217770(uVar1);\n}\n\n" (function_definition "void FUN_0002cf54(void)\n\n{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    /* WARNING: Subroutine does not return */\n  FUN_00217770(uVar1);\n}" primitive_type (function_declarator "FUN_0002cf54(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    /* WARNING: Subroutine does not return */\n  FUN_00217770(uVar1);\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 in_ECX;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0xb0) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xb0) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xb0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) = number_literal) ;) (for_statement "for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }" for ( (assignment_expression "iVar2 = 0" identifier = number_literal) ; (binary_expression "iVar2 != 0" identifier != number_literal) ; (assignment_expression "iVar2 = iVar2 + 0x40" identifier = (binary_expression "iVar2 + 0x40" identifier + number_literal)) ) (compound_statement "{\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x18) != iVar2 + 0x20)" ( (binary_expression "*(int *)(iVar2 + 0x18) != iVar2 + 0x20" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar2 + 0x20" identifier + number_literal)) )) (compound_statement "{\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }" { (expression_statement "FUN_001807a0(*(int *)(iVar2 + 0x18));" (call_expression "FUN_001807a0(*(int *)(iVar2 + 0x18))" identifier (argument_list "(*(int *)(iVar2 + 0x18))" ( (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) ))) ;) })) })) (expression_statement "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);" (assignment_expression "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);" (call_expression "FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0xb0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(unaff_EBP + -0xfc)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xfc)" ( (binary_expression "unaff_EBP + -0xfc" identifier + number_literal) )))) , identifier , identifier ))) ;) (for_statement "for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }" for ( (assignment_expression "piVar3 = *(int **)(unaff_EBP + -0x110)" identifier = (pointer_expression "*(int **)(unaff_EBP + -0x110)" * (cast_expression "(int **)(unaff_EBP + -0x110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x110)" ( (binary_expression "unaff_EBP + -0x110" identifier + number_literal) ))))) ; (binary_expression "piVar3 != *(int **)(unaff_EBP + -0x10c)" identifier != (pointer_expression "*(int **)(unaff_EBP + -0x10c)" * (cast_expression "(int **)(unaff_EBP + -0x10c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x10c)" ( (binary_expression "unaff_EBP + -0x10c" identifier + number_literal) ))))) ; (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ) (compound_statement "{\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }" { (expression_statement "iVar2 = piVar3[1];" (assignment_expression "iVar2 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "*(int **)(unaff_EBP + -0xc0) = piVar3;" (assignment_expression "*(int **)(unaff_EBP + -0xc0) = piVar3" (pointer_expression "*(int **)(unaff_EBP + -0xc0)" * (cast_expression "(int **)(unaff_EBP + -0xc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(unaff_EBP + -0xb0) = iVar2;" (assignment_expression "*(int *)(unaff_EBP + -0xb0) = iVar2" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" * (cast_expression "(int *)(unaff_EBP + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) = identifier) ;) (for_statement "for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }" for ( ; (binary_expression "*(int *)(unaff_EBP + -0xb0) != iVar4" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" * (cast_expression "(int *)(unaff_EBP + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) != identifier) ; (assignment_expression "iVar4 = iVar4 + 0x40" identifier = (binary_expression "iVar4 + 0x40" identifier + number_literal)) ) (compound_statement "{\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }" { (if_statement "if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }" if (parenthesized_expression "(*(int *)(iVar4 + 0x18) != iVar4 + 0x20)" ( (binary_expression "*(int *)(iVar4 + 0x18) != iVar4 + 0x20" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar4 + 0x20" identifier + number_literal)) )) (compound_statement "{\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }" { (expression_statement "FUN_001807a0(*(int *)(iVar4 + 0x18));" (call_expression "FUN_001807a0(*(int *)(iVar4 + 0x18))" identifier (argument_list "(*(int *)(iVar4 + 0x18))" ( (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) ))) ;) })) })) (expression_statement "piVar3 = *(int **)(unaff_EBP + -0xc0);" (assignment_expression "piVar3 = *(int **)(unaff_EBP + -0xc0)" identifier = (pointer_expression "*(int **)(unaff_EBP + -0xc0)" * (cast_expression "(int **)(unaff_EBP + -0xc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *piVar3;" (assignment_expression "iVar2 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001807a0(iVar2);\n    }" { (expression_statement "FUN_001807a0(iVar2);" (call_expression "FUN_001807a0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) })) (expression_statement "FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));" (call_expression "FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x110))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x110)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x110)" ( (binary_expression "unaff_EBP + -0x110" identifier + number_literal) )))) ))) ;) comment (expression_statement "FUN_00217770(uVar1);" (call_expression "FUN_00217770(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* gold::Output_section_element_input::set_section_addresses(gold::Symbol_table*, gold::Layout*,\n   gold::Output_section*, unsigned long long, unsigned long long*, unsigned long long*,\n   gold::Output_section**, std::string*, std::list<gold::Output_section::Input_section,\n   std::allocator<gold::Output_section::Input_section> >*) [clone .cold.381] */\n\nvoid gold::Output_section_element_input::set_section_addresses\n               (Symbol_table *param_1,Layout *param_2,Output_section *param_3,ulonglong param_4,\n               ulonglong *param_5,ulonglong *param_6,Output_section **param_7,string *param_8,\n               list *param_9)\n\n{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  void *pvVar3;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  nothrow_t *pnVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar4 = 0; iVar4 != 0; iVar4 = iVar4 + 0x40) {\n    if (*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)) {\n      operator_delete(*(void **)(iVar4 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  pnVar7 = *(nothrow_t **)(unaff_EBP + -0xfc);\n  uVar8 = uVar1;\n  uVar9 = uVar1;\n  operator_delete(*(void **)(unaff_EBP + -0xb0),pnVar7);\n  piVar5 = *(int **)(unaff_EBP + -0x110);\n  while (piVar5 != *(int **)(unaff_EBP + -0x10c)) {\n    iVar4 = piVar5[1];\n    iVar6 = *piVar5;\n    *(int **)(unaff_EBP + -0xc0) = piVar5;\n    *(int *)(unaff_EBP + -0xb0) = iVar4;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar6; iVar6 = iVar6 + 0x40) {\n      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }\n    }\n    puVar2 = *(undefined4 **)(unaff_EBP + -0xc0);\n    pvVar3 = (void *)*puVar2;\n    if (pvVar3 != (void *)0x0) {\n      operator_delete(pvVar3);\n    }\n    piVar5 = puVar2 + 3;\n  }\n  operator_delete(*(void **)(unaff_EBP + -0x110));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume(uVar1,pnVar7,uVar8,uVar9);\n}\n\n" comment comment (function_definition "void gold::Output_section_element_input::set_section_addresses\n               (Symbol_table *param_1,Layout *param_2,Output_section *param_3,ulonglong param_4,\n               ulonglong *param_5,ulonglong *param_6,Output_section **param_7,string *param_8,\n               list *param_9)\n\n{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  void *pvVar3;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  nothrow_t *pnVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar4 = 0; iVar4 != 0; iVar4 = iVar4 + 0x40) {\n    if (*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)) {\n      operator_delete(*(void **)(iVar4 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  pnVar7 = *(nothrow_t **)(unaff_EBP + -0xfc);\n  uVar8 = uVar1;\n  uVar9 = uVar1;\n  operator_delete(*(void **)(unaff_EBP + -0xb0),pnVar7);\n  piVar5 = *(int **)(unaff_EBP + -0x110);\n  while (piVar5 != *(int **)(unaff_EBP + -0x10c)) {\n    iVar4 = piVar5[1];\n    iVar6 = *piVar5;\n    *(int **)(unaff_EBP + -0xc0) = piVar5;\n    *(int *)(unaff_EBP + -0xb0) = iVar4;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar6; iVar6 = iVar6 + 0x40) {\n      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }\n    }\n    puVar2 = *(undefined4 **)(unaff_EBP + -0xc0);\n    pvVar3 = (void *)*puVar2;\n    if (pvVar3 != (void *)0x0) {\n      operator_delete(pvVar3);\n    }\n    piVar5 = puVar2 + 3;\n  }\n  operator_delete(*(void **)(unaff_EBP + -0x110));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume(uVar1,pnVar7,uVar8,uVar9);\n}" primitive_type (ERROR "gold::Output_section_element_input::" identifier : : identifier : :) (function_declarator "set_section_addresses\n               (Symbol_table *param_1,Layout *param_2,Output_section *param_3,ulonglong param_4,\n               ulonglong *param_5,ulonglong *param_6,Output_section **param_7,string *param_8,\n               list *param_9)" identifier (parameter_list "(Symbol_table *param_1,Layout *param_2,Output_section *param_3,ulonglong param_4,\n               ulonglong *param_5,ulonglong *param_6,Output_section **param_7,string *param_8,\n               list *param_9)" ( (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Layout *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Output_section *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "ulonglong param_4" type_identifier identifier) , (parameter_declaration "ulonglong *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "ulonglong *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "Output_section **param_7" type_identifier (pointer_declarator "**param_7" * (pointer_declarator "*param_7" * identifier))) , (parameter_declaration "string *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "list *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  void *pvVar3;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar4;\n  int *piVar5;\n  int iVar6;\n  nothrow_t *pnVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar4 = 0; iVar4 != 0; iVar4 = iVar4 + 0x40) {\n    if (*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)) {\n      operator_delete(*(void **)(iVar4 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  pnVar7 = *(nothrow_t **)(unaff_EBP + -0xfc);\n  uVar8 = uVar1;\n  uVar9 = uVar1;\n  operator_delete(*(void **)(unaff_EBP + -0xb0),pnVar7);\n  piVar5 = *(int **)(unaff_EBP + -0x110);\n  while (piVar5 != *(int **)(unaff_EBP + -0x10c)) {\n    iVar4 = piVar5[1];\n    iVar6 = *piVar5;\n    *(int **)(unaff_EBP + -0xc0) = piVar5;\n    *(int *)(unaff_EBP + -0xb0) = iVar4;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar6; iVar6 = iVar6 + 0x40) {\n      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }\n    }\n    puVar2 = *(undefined4 **)(unaff_EBP + -0xc0);\n    pvVar3 = (void *)*puVar2;\n    if (pvVar3 != (void *)0x0) {\n      operator_delete(pvVar3);\n    }\n    piVar5 = puVar2 + 3;\n  }\n  operator_delete(*(void **)(unaff_EBP + -0x110));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume(uVar1,pnVar7,uVar8,uVar9);\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "undefined4 in_ECX;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "nothrow_t *pnVar7;" type_identifier (pointer_declarator "*pnVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0xb0) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xb0) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xb0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) = number_literal) ;) (for_statement "for (iVar4 = 0; iVar4 != 0; iVar4 = iVar4 + 0x40) {\n    if (*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)) {\n      operator_delete(*(void **)(iVar4 + 0x18));\n    }\n  }" for ( (assignment_expression "iVar4 = 0" identifier = number_literal) ; (binary_expression "iVar4 != 0" identifier != number_literal) ; (assignment_expression "iVar4 = iVar4 + 0x40" identifier = (binary_expression "iVar4 + 0x40" identifier + number_literal)) ) (compound_statement "{\n    if (*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)) {\n      operator_delete(*(void **)(iVar4 + 0x18));\n    }\n  }" { (if_statement "if (*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)) {\n      operator_delete(*(void **)(iVar4 + 0x18));\n    }" if (parenthesized_expression "(*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20))" ( (binary_expression "*(void **)(iVar4 + 0x18) != (void *)(iVar4 + 0x20)" (pointer_expression "*(void **)(iVar4 + 0x18)" * (cast_expression "(void **)(iVar4 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != (cast_expression "(void *)(iVar4 + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) )) (compound_statement "{\n      operator_delete(*(void **)(iVar4 + 0x18));\n    }" { (expression_statement "operator_delete(*(void **)(iVar4 + 0x18));" (call_expression "operator_delete(*(void **)(iVar4 + 0x18))" identifier (argument_list "(*(void **)(iVar4 + 0x18))" ( (pointer_expression "*(void **)(iVar4 + 0x18)" * (cast_expression "(void **)(iVar4 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) ))) ;) })) })) (expression_statement "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);" (assignment_expression "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "pnVar7 = *(nothrow_t **)(unaff_EBP + -0xfc);" (assignment_expression "pnVar7 = *(nothrow_t **)(unaff_EBP + -0xfc)" identifier = (pointer_expression "*(nothrow_t **)(unaff_EBP + -0xfc)" * (cast_expression "(nothrow_t **)(unaff_EBP + -0xfc)" ( (type_descriptor "nothrow_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xfc)" ( (binary_expression "unaff_EBP + -0xfc" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = uVar1;" (assignment_expression "uVar8 = uVar1" identifier = identifier) ;) (expression_statement "uVar9 = uVar1;" (assignment_expression "uVar9 = uVar1" identifier = identifier) ;) (expression_statement "operator_delete(*(void **)(unaff_EBP + -0xb0),pnVar7);" (call_expression "operator_delete(*(void **)(unaff_EBP + -0xb0),pnVar7)" identifier (argument_list "(*(void **)(unaff_EBP + -0xb0),pnVar7)" ( (pointer_expression "*(void **)(unaff_EBP + -0xb0)" * (cast_expression "(void **)(unaff_EBP + -0xb0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "piVar5 = *(int **)(unaff_EBP + -0x110);" (assignment_expression "piVar5 = *(int **)(unaff_EBP + -0x110)" identifier = (pointer_expression "*(int **)(unaff_EBP + -0x110)" * (cast_expression "(int **)(unaff_EBP + -0x110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x110)" ( (binary_expression "unaff_EBP + -0x110" identifier + number_literal) ))))) ;) (while_statement "while (piVar5 != *(int **)(unaff_EBP + -0x10c)) {\n    iVar4 = piVar5[1];\n    iVar6 = *piVar5;\n    *(int **)(unaff_EBP + -0xc0) = piVar5;\n    *(int *)(unaff_EBP + -0xb0) = iVar4;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar6; iVar6 = iVar6 + 0x40) {\n      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }\n    }\n    puVar2 = *(undefined4 **)(unaff_EBP + -0xc0);\n    pvVar3 = (void *)*puVar2;\n    if (pvVar3 != (void *)0x0) {\n      operator_delete(pvVar3);\n    }\n    piVar5 = puVar2 + 3;\n  }" while (parenthesized_expression "(piVar5 != *(int **)(unaff_EBP + -0x10c))" ( (binary_expression "piVar5 != *(int **)(unaff_EBP + -0x10c)" identifier != (pointer_expression "*(int **)(unaff_EBP + -0x10c)" * (cast_expression "(int **)(unaff_EBP + -0x10c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x10c)" ( (binary_expression "unaff_EBP + -0x10c" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar4 = piVar5[1];\n    iVar6 = *piVar5;\n    *(int **)(unaff_EBP + -0xc0) = piVar5;\n    *(int *)(unaff_EBP + -0xb0) = iVar4;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar6; iVar6 = iVar6 + 0x40) {\n      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }\n    }\n    puVar2 = *(undefined4 **)(unaff_EBP + -0xc0);\n    pvVar3 = (void *)*puVar2;\n    if (pvVar3 != (void *)0x0) {\n      operator_delete(pvVar3);\n    }\n    piVar5 = puVar2 + 3;\n  }" { (expression_statement "iVar4 = piVar5[1];" (assignment_expression "iVar4 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = *piVar5;" (assignment_expression "iVar6 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "*(int **)(unaff_EBP + -0xc0) = piVar5;" (assignment_expression "*(int **)(unaff_EBP + -0xc0) = piVar5" (pointer_expression "*(int **)(unaff_EBP + -0xc0)" * (cast_expression "(int **)(unaff_EBP + -0xc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(unaff_EBP + -0xb0) = iVar4;" (assignment_expression "*(int *)(unaff_EBP + -0xb0) = iVar4" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" * (cast_expression "(int *)(unaff_EBP + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) = identifier) ;) (for_statement "for (; *(int *)(unaff_EBP + -0xb0) != iVar6; iVar6 = iVar6 + 0x40) {\n      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }\n    }" for ( ; (binary_expression "*(int *)(unaff_EBP + -0xb0) != iVar6" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" * (cast_expression "(int *)(unaff_EBP + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) != identifier) ; (assignment_expression "iVar6 = iVar6 + 0x40" identifier = (binary_expression "iVar6 + 0x40" identifier + number_literal)) ) (compound_statement "{\n      if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }\n    }" { (if_statement "if (*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)) {\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }" if (parenthesized_expression "(*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20))" ( (binary_expression "*(void **)(iVar6 + 0x18) != (void *)(iVar6 + 0x20)" (pointer_expression "*(void **)(iVar6 + 0x18)" * (cast_expression "(void **)(iVar6 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) != (cast_expression "(void *)(iVar6 + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) )) (compound_statement "{\n        operator_delete(*(void **)(iVar6 + 0x18));\n      }" { (expression_statement "operator_delete(*(void **)(iVar6 + 0x18));" (call_expression "operator_delete(*(void **)(iVar6 + 0x18))" identifier (argument_list "(*(void **)(iVar6 + 0x18))" ( (pointer_expression "*(void **)(iVar6 + 0x18)" * (cast_expression "(void **)(iVar6 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) ))) ;) })) })) (expression_statement "puVar2 = *(undefined4 **)(unaff_EBP + -0xc0);" (assignment_expression "puVar2 = *(undefined4 **)(unaff_EBP + -0xc0)" identifier = (pointer_expression "*(undefined4 **)(unaff_EBP + -0xc0)" * (cast_expression "(undefined4 **)(unaff_EBP + -0xc0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "pvVar3 = (void *)*puVar2;" (assignment_expression "pvVar3 = (void *)*puVar2" identifier = (cast_expression "(void *)*puVar2" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if (pvVar3 != (void *)0x0) {\n      operator_delete(pvVar3);\n    }" if (parenthesized_expression "(pvVar3 != (void *)0x0)" ( (binary_expression "pvVar3 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      operator_delete(pvVar3);\n    }" { (expression_statement "operator_delete(pvVar3);" (call_expression "operator_delete(pvVar3)" identifier (argument_list "(pvVar3)" ( identifier ))) ;) })) (expression_statement "piVar5 = puVar2 + 3;" (assignment_expression "piVar5 = puVar2 + 3" identifier = (binary_expression "puVar2 + 3" identifier + number_literal)) ;) })) (expression_statement "operator_delete(*(void **)(unaff_EBP + -0x110));" (call_expression "operator_delete(*(void **)(unaff_EBP + -0x110))" identifier (argument_list "(*(void **)(unaff_EBP + -0x110))" ( (pointer_expression "*(void **)(unaff_EBP + -0x110)" * (cast_expression "(void **)(unaff_EBP + -0x110)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x110)" ( (binary_expression "unaff_EBP + -0x110" identifier + number_literal) )))) ))) ;) comment (expression_statement "_Unwind_Resume(uVar1,pnVar7,uVar8,uVar9);" (call_expression "_Unwind_Resume(uVar1,pnVar7,uVar8,uVar9)" identifier (argument_list "(uVar1,pnVar7,uVar8,uVar9)" ( identifier , identifier , identifier , identifier ))) ;) })))
(translation_unit "void FUN_0002cf54(void)\n\n{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    \n  FUN_00217770(uVar1);\n}\n\n" (function_definition "void FUN_0002cf54(void)\n\n{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    \n  FUN_00217770(uVar1);\n}" primitive_type (function_declarator "FUN_0002cf54(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    \n  FUN_00217770(uVar1);\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 in_ECX;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(unaff_EBP + -0xb0) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xb0) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xb0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) = number_literal) ;) (for_statement "for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }" for ( (assignment_expression "iVar2 = 0" identifier = number_literal) ; (binary_expression "iVar2 != 0" identifier != number_literal) ; (assignment_expression "iVar2 = iVar2 + 0x40" identifier = (binary_expression "iVar2 + 0x40" identifier + number_literal)) ) (compound_statement "{\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x18) != iVar2 + 0x20)" ( (binary_expression "*(int *)(iVar2 + 0x18) != iVar2 + 0x20" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar2 + 0x20" identifier + number_literal)) )) (compound_statement "{\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }" { (expression_statement "FUN_001807a0(*(int *)(iVar2 + 0x18));" (call_expression "FUN_001807a0(*(int *)(iVar2 + 0x18))" identifier (argument_list "(*(int *)(iVar2 + 0x18))" ( (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) ))) ;) })) })) (expression_statement "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);" (assignment_expression "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0)" identifier = (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);" (call_expression "FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0xb0)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(unaff_EBP + -0xfc)" * (cast_expression "(undefined4 *)(unaff_EBP + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xfc)" ( (binary_expression "unaff_EBP + -0xfc" identifier + number_literal) )))) , identifier , identifier ))) ;) (for_statement "for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }" for ( (assignment_expression "piVar3 = *(int **)(unaff_EBP + -0x110)" identifier = (pointer_expression "*(int **)(unaff_EBP + -0x110)" * (cast_expression "(int **)(unaff_EBP + -0x110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x110)" ( (binary_expression "unaff_EBP + -0x110" identifier + number_literal) ))))) ; (binary_expression "piVar3 != *(int **)(unaff_EBP + -0x10c)" identifier != (pointer_expression "*(int **)(unaff_EBP + -0x10c)" * (cast_expression "(int **)(unaff_EBP + -0x10c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0x10c)" ( (binary_expression "unaff_EBP + -0x10c" identifier + number_literal) ))))) ; (assignment_expression "piVar3 = piVar3 + 3" identifier = (binary_expression "piVar3 + 3" identifier + number_literal)) ) (compound_statement "{\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }" { (expression_statement "iVar2 = piVar3[1];" (assignment_expression "iVar2 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "*(int **)(unaff_EBP + -0xc0) = piVar3;" (assignment_expression "*(int **)(unaff_EBP + -0xc0) = piVar3" (pointer_expression "*(int **)(unaff_EBP + -0xc0)" * (cast_expression "(int **)(unaff_EBP + -0xc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(unaff_EBP + -0xb0) = iVar2;" (assignment_expression "*(int *)(unaff_EBP + -0xb0) = iVar2" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" * (cast_expression "(int *)(unaff_EBP + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) = identifier) ;) (for_statement "for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }" for ( ; (binary_expression "*(int *)(unaff_EBP + -0xb0) != iVar4" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" * (cast_expression "(int *)(unaff_EBP + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0xb0)" ( (binary_expression "unaff_EBP + -0xb0" identifier + number_literal) )))) != identifier) ; (assignment_expression "iVar4 = iVar4 + 0x40" identifier = (binary_expression "iVar4 + 0x40" identifier + number_literal)) ) (compound_statement "{\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }" { (if_statement "if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }" if (parenthesized_expression "(*(int *)(iVar4 + 0x18) != iVar4 + 0x20)" ( (binary_expression "*(int *)(iVar4 + 0x18) != iVar4 + 0x20" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != (binary_expression "iVar4 + 0x20" identifier + number_literal)) )) (compound_statement "{\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }" { (expression_statement "FUN_001807a0(*(int *)(iVar4 + 0x18));" (call_expression "FUN_001807a0(*(int *)(iVar4 + 0x18))" identifier (argument_list "(*(int *)(iVar4 + 0x18))" ( (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) ))) ;) })) })) (expression_statement "piVar3 = *(int **)(unaff_EBP + -0xc0);" (assignment_expression "piVar3 = *(int **)(unaff_EBP + -0xc0)" identifier = (pointer_expression "*(int **)(unaff_EBP + -0xc0)" * (cast_expression "(int **)(unaff_EBP + -0xc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + -0xc0)" ( (binary_expression "unaff_EBP + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *piVar3;" (assignment_expression "iVar2 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001807a0(iVar2);\n    }" { (expression_statement "FUN_001807a0(iVar2);" (call_expression "FUN_001807a0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) })) (expression_statement "FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));" (call_expression "FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110))" identifier (argument_list "(*(undefined4 *)(unaff_EBP + -0x110))" ( (pointer_expression "*(undefined4 *)(unaff_EBP + -0x110)" * (cast_expression "(undefined4 *)(unaff_EBP + -0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x110)" ( (binary_expression "unaff_EBP + -0x110" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00217770(uVar1);" (call_expression "FUN_00217770(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (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) )))) ))) ;) })) })) (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) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (for_statement for ( ; (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (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) )))) ))) ;) })) })) (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 * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 (call_expression IDENT (argument_list ( IDENT ))) ;) })))
(function_definition "void FUN_0002cf54(void)\n\n{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    \n  FUN_00217770(uVar1);\n}" (primitive_type "void") (function_declarator "FUN_0002cf54(void)" (identifier "FUN_0002cf54") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 in_ECX;\n  int unaff_EBP;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;\n  *(undefined4 *)(unaff_EBP + -0xb0) = 0;\n  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }\n  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);\n  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);\n  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }\n  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));\n                    \n  FUN_00217770(uVar1);\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 in_ECX;" (type_identifier "undefined4") (identifier "in_ECX") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xc0) = in_ECX" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0xc0)" (( "(") (binary_expression "unaff_EBP + -0xc0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xc0")) () ")")))) (= "=") (identifier "in_ECX")) (; ";")) (expression_statement "*(undefined4 *)(unaff_EBP + -0xb0) = 0;" (assignment_expression "*(undefined4 *)(unaff_EBP + -0xb0) = 0" (pointer_expression "*(undefined4 *)(unaff_EBP + -0xb0)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0xb0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0xb0)" (( "(") (binary_expression "unaff_EBP + -0xb0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xb0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (for_statement "for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }" (for "for") (( "(") (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar2 = iVar2 + 0x40" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40"))) () ")") (compound_statement "{\n    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }\n  }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x18) != iVar2 + 0x20)" (( "(") (binary_expression "*(int *)(iVar2 + 0x18) != iVar2 + 0x20" (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20"))) () ")")) (compound_statement "{\n      FUN_001807a0(*(int *)(iVar2 + 0x18));\n    }" ({ "{") (expression_statement "FUN_001807a0(*(int *)(iVar2 + 0x18));" (call_expression "FUN_001807a0(*(int *)(iVar2 + 0x18))" (identifier "FUN_001807a0") (argument_list "(*(int *)(iVar2 + 0x18))" (( "(") (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);" (assignment_expression "uVar1 = *(undefined4 *)(unaff_EBP + -0xc0)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(unaff_EBP + -0xc0)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0xc0)" (( "(") (binary_expression "unaff_EBP + -0xc0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);" (call_expression "FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1)" (identifier "FUN_00180760") (argument_list "(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1)" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + -0xb0)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0xb0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0xb0)" (( "(") (binary_expression "unaff_EBP + -0xb0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xb0")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(unaff_EBP + -0xfc)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0xfc)" (( "(") (binary_expression "unaff_EBP + -0xfc" (identifier "unaff_EBP") (+ "+") (number_literal "-0xfc")) () ")")))) (, ",") (identifier "uVar1") (, ",") (identifier "uVar1") () ")"))) (; ";")) (for_statement "for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);\n      piVar3 = piVar3 + 3) {\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }" (for "for") (( "(") (assignment_expression "piVar3 = *(int **)(unaff_EBP + -0x110)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(unaff_EBP + -0x110)" (* "*") (cast_expression "(int **)(unaff_EBP + -0x110)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0x110)" (( "(") (binary_expression "unaff_EBP + -0x110" (identifier "unaff_EBP") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";") (binary_expression "piVar3 != *(int **)(unaff_EBP + -0x10c)" (identifier "piVar3") (!= "!=") (pointer_expression "*(int **)(unaff_EBP + -0x10c)" (* "*") (cast_expression "(int **)(unaff_EBP + -0x10c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0x10c)" (( "(") (binary_expression "unaff_EBP + -0x10c" (identifier "unaff_EBP") (+ "+") (number_literal "-0x10c")) () ")"))))) (; ";") (assignment_expression "piVar3 = piVar3 + 3" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 3" (identifier "piVar3") (+ "+") (number_literal "3"))) () ")") (compound_statement "{\n    iVar2 = piVar3[1];\n    iVar4 = *piVar3;\n    *(int **)(unaff_EBP + -0xc0) = piVar3;\n    *(int *)(unaff_EBP + -0xb0) = iVar2;\n    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }\n    piVar3 = *(int **)(unaff_EBP + -0xc0);\n    iVar2 = *piVar3;\n    if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }\n  }" ({ "{") (expression_statement "iVar2 = piVar3[1];" (assignment_expression "iVar2 = piVar3[1]" (identifier "iVar2") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" (identifier "iVar4") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "*(int **)(unaff_EBP + -0xc0) = piVar3;" (assignment_expression "*(int **)(unaff_EBP + -0xc0) = piVar3" (pointer_expression "*(int **)(unaff_EBP + -0xc0)" (* "*") (cast_expression "(int **)(unaff_EBP + -0xc0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0xc0)" (( "(") (binary_expression "unaff_EBP + -0xc0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xc0")) () ")")))) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "*(int *)(unaff_EBP + -0xb0) = iVar2;" (assignment_expression "*(int *)(unaff_EBP + -0xb0) = iVar2" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" (* "*") (cast_expression "(int *)(unaff_EBP + -0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0xb0)" (( "(") (binary_expression "unaff_EBP + -0xb0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xb0")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (for_statement "for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "*(int *)(unaff_EBP + -0xb0) != iVar4" (pointer_expression "*(int *)(unaff_EBP + -0xb0)" (* "*") (cast_expression "(int *)(unaff_EBP + -0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0xb0)" (( "(") (binary_expression "unaff_EBP + -0xb0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xb0")) () ")")))) (!= "!=") (identifier "iVar4")) (; ";") (assignment_expression "iVar4 = iVar4 + 0x40" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 0x40" (identifier "iVar4") (+ "+") (number_literal "0x40"))) () ")") (compound_statement "{\n      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }\n    }" ({ "{") (if_statement "if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x18) != iVar4 + 0x20)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) != iVar4 + 0x20" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20"))) () ")")) (compound_statement "{\n        FUN_001807a0(*(int *)(iVar4 + 0x18));\n      }" ({ "{") (expression_statement "FUN_001807a0(*(int *)(iVar4 + 0x18));" (call_expression "FUN_001807a0(*(int *)(iVar4 + 0x18))" (identifier "FUN_001807a0") (argument_list "(*(int *)(iVar4 + 0x18))" (( "(") (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar3 = *(int **)(unaff_EBP + -0xc0);" (assignment_expression "piVar3 = *(int **)(unaff_EBP + -0xc0)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(unaff_EBP + -0xc0)" (* "*") (cast_expression "(int **)(unaff_EBP + -0xc0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + -0xc0)" (( "(") (binary_expression "unaff_EBP + -0xc0" (identifier "unaff_EBP") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "iVar2 = *piVar3;" (assignment_expression "iVar2 = *piVar3" (identifier "iVar2") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if (iVar2 != 0) {\n      FUN_001807a0(iVar2);\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001807a0(iVar2);\n    }" ({ "{") (expression_statement "FUN_001807a0(iVar2);" (call_expression "FUN_001807a0(iVar2)" (identifier "FUN_001807a0") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));" (call_expression "FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110))" (identifier "FUN_001807a0") (argument_list "(*(undefined4 *)(unaff_EBP + -0x110))" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + -0x110)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + -0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x110)" (( "(") (binary_expression "unaff_EBP + -0x110" (identifier "unaff_EBP") (+ "+") (number_literal "-0x110")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00217770(uVar1);" (call_expression "FUN_00217770(uVar1)" (identifier "FUN_00217770") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* gold::Output_section_element_input::set_section_addresses(gold::Symbol_table*, gold::Layout*,
   gold::Output_section*, unsigned long long, unsigned long long*, unsigned long long*,
   gold::Output_section**, std::string*, std::list<gold::Output_section::Input_section,
   std::allocator<gold::Output_section::Input_section> >*) [clone .cold.381] */

void gold::Output_section_element_input::function_1
               (type_1 *param_1,type_2 *param_2,type_3 *param_3,type_4 param_4,
               type_4 *param_5,type_4 *param_6,type_3 **param_7,type_5 *param_8,
               type_6 *param_9)

{
  type_7 uVar1;
  type_7 *var_7;
  void *var_6;
  type_7 in_ECX;
  int var_1;
  int var_2;
  int *var_4;
  int var_5;
  type_8 *pnVar7;
  type_7 uVar8;
  type_7 uVar9;
  
  *(type_7 *)(var_1 + -0xc0) = in_ECX;
  *(type_7 *)(var_1 + -0xb0) = 0;
  for (var_2 = 0; var_2 != 0; var_2 = var_2 + 0x40) {
    if (*(void **)(var_2 + 0x18) != (void *)(var_2 + 0x20)) {
      var_3(*(void **)(var_2 + 0x18));
    }
  }
  uVar1 = *(type_7 *)(var_1 + -0xc0);
  pnVar7 = *(type_8 **)(var_1 + -0xfc);
  uVar8 = uVar1;
  uVar9 = uVar1;
  var_3(*(void **)(var_1 + -0xb0),pnVar7);
  var_4 = *(int **)(var_1 + -0x110);
  while (var_4 != *(int **)(var_1 + -0x10c)) {
    var_2 = var_4[1];
    var_5 = *var_4;
    *(int **)(var_1 + -0xc0) = var_4;
    *(int *)(var_1 + -0xb0) = var_2;
    for (; *(int *)(var_1 + -0xb0) != var_5; var_5 = var_5 + 0x40) {
      if (*(void **)(var_5 + 0x18) != (void *)(var_5 + 0x20)) {
        var_3(*(void **)(var_5 + 0x18));
      }
    }
    var_7 = *(type_7 **)(var_1 + -0xc0);
    var_6 = (void *)*var_7;
    if (var_6 != (void *)0x0) {
      var_3(var_6);
    }
    var_4 = var_7 + 3;
  }
  var_3(*(void **)(var_1 + -0x110));
                    /* WARNING: Subroutine does not return */
  var_8(uVar1,pnVar7,uVar8,uVar9);
}


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

void MASKED(void)

{
  undefined4 uVar1;
  undefined4 in_ECX;
  int unaff_EBP;
  int iVar2;
  int *piVar3;
  int iVar4;
  
  *(undefined4 *)(unaff_EBP + -0xc0) = in_ECX;
  *(undefined4 *)(unaff_EBP + -0xb0) = 0;
  for (iVar2 = 0; iVar2 != 0; iVar2 = iVar2 + 0x40) {
    if (*(int *)(iVar2 + 0x18) != iVar2 + 0x20) {
      FUN_001807a0(*(int *)(iVar2 + 0x18));
    }
  }
  uVar1 = *(undefined4 *)(unaff_EBP + -0xc0);
  FUN_00180760(*(undefined4 *)(unaff_EBP + -0xb0),*(undefined4 *)(unaff_EBP + -0xfc),uVar1,uVar1);
  for (piVar3 = *(int **)(unaff_EBP + -0x110); piVar3 != *(int **)(unaff_EBP + -0x10c);
      piVar3 = piVar3 + 3) {
    iVar2 = piVar3[1];
    iVar4 = *piVar3;
    *(int **)(unaff_EBP + -0xc0) = piVar3;
    *(int *)(unaff_EBP + -0xb0) = iVar2;
    for (; *(int *)(unaff_EBP + -0xb0) != iVar4; iVar4 = iVar4 + 0x40) {
      if (*(int *)(iVar4 + 0x18) != iVar4 + 0x20) {
        FUN_001807a0(*(int *)(iVar4 + 0x18));
      }
    }
    piVar3 = *(int **)(unaff_EBP + -0xc0);
    iVar2 = *piVar3;
    if (iVar2 != 0) {
      FUN_001807a0(iVar2);
    }
  }
  FUN_001807a0(*(undefined4 *)(unaff_EBP + -0x110));
                    /* WARNING: Subroutine does not return */
  FUN_00217770(uVar1);
}

