
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */

ld_plugin_status gold::get_input_section_count(void *handle,uint *count)

{
  Plugin_manager *pPVar1;
  Object *pOVar2;
  int iVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined *puVar6;
  void *handle_00;
  undefined4 uVar7;
  uint uVar8;
  undefined *puVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  int in_a3;
  undefined4 *unaff_s0;
  int unaff_s1;
  int *piVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  int unaff_retaddr;
  code *pcVar16;
  undefined1 *puStack_88;
  int iStack_84;
  undefined1 auStack_80 [20];
  undefined4 *puStack_6c;
  int iStack_68;
  code *pcStack_64;
  void *pvStack_60;
  undefined4 uStack_5c;
  undefined *puStack_50;
  Object *pOStack_48;
  undefined4 uStack_44;
  undefined4 uStack_c;
  
  puVar9 = PTR_s__0043226c;
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0) {
    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);
    if (pPVar1 != (Plugin_manager *)0x0) {
      if ((pPVar1->in_claim_file_handler_ != false) &&
         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {
        *count = pOVar2->shnum_;
        return LDPS_OK;
      }
      return LDPS_ERR;
    }
    puVar9 = PTR_s__0043226c + -0x72f0;
    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af);
  }
  puVar10 = (undefined4 *)(puVar9 + -0x742c);
  puVar6 = PTR_s_alize_xindex_004323b4 + -0x5cec;
  puVar13 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar6,0x5c);
  puVar9 = puVar13 + 0x2548c0;
  piVar12 = *(int **)(puVar13 + 0x24d2d0);
  puVar11 = unaff_s0;
  puStack_50 = puVar9;
  if (*(int *)(*piVar12 + 8) == 0) {
LAB_001e5a98:
    puVar9 = puStack_50;
    (**(code **)(puStack_50 + -0x7e0c))
              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,
               *(int *)(puStack_50 + -0x7f64) + -0x742c);
LAB_001e5ab4:
    uVar7 = 0x8a6;
  }
  else {
    iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);
    uVar7 = 0x89d;
    if (iVar3 != 0) {
      if (unaff_retaddr == 0) {
        return LDPS_OK;
      }
      if (unaff_s0 == (undefined4 *)0x0) {
        return LDPS_ERR;
      }
      iVar3 = *(int *)(iVar3 + 0x80);
      if (iVar3 != 0) {
        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);
        iVar5 = *piVar12;
        *puVar4 = puVar6;
        puVar4[3] = in_a3;
        puVar4[2] = puVar10;
        puVar4[5] = uStack_c;
        puVar4[4] = 0x43a1d0;
        iVar5 = *(int *)(iVar5 + 8);
        puVar11 = puVar10;
        unaff_s1 = in_a3;
        if (iVar5 != 0) {
          unaff_s1 = 0;
          puVar11 = unaff_s0;
          do {
            pOStack_48 = Plugin_manager::get_elf_object
                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);
            if ((pOStack_48 == (Object *)0x0) ||
               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {
              return LDPS_BAD_HANDLE;
            }
            uStack_44 = puVar11[1];
            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);
            if (unaff_retaddr == unaff_s1) {
              return LDPS_OK;
            }
            iVar5 = *(int *)(*piVar12 + 8);
            puVar11 = puVar11 + 2;
          } while (iVar5 != 0);
        }
        goto LAB_001e5a98;
      }
      goto LAB_001e5ab4;
    }
  }
  pcVar14 = *(code **)(puVar9 + -0x7e0c);
  puVar10 = (undefined4 *)(*(int *)(puVar9 + -0x7f64) + -0x71b8);
  pcVar16 = get_input_section_name;
  handle_00 = (void *)(*(int *)(puVar9 + -0x7f64) + -0x7b3c);
  (*pcVar14)();
  pcVar15 = *(code **)(pcVar14 + 0x24c8f4);
  puStack_6c = puVar11;
  iStack_68 = unaff_s1;
  pcStack_64 = pcVar16;
  pvStack_60 = handle_00;
  uStack_5c = uVar7;
  if (*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) != 0) {
    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c);
    uVar7 = 0x7dc;
    if (pPVar1 != (Plugin_manager *)0x0) {
      if (pPVar1->in_claim_file_handler_ == false) {
        return LDPS_ERR;
      }
      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);
      if (pOVar2 == (Object *)0x0) {
        return LDPS_BAD_HANDLE;
      }
      if ((pOVar2->input_file_ != (Input_file *)0x0) &&
         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {
        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);
        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);
        *puVar10 = uVar7;
        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);
        if (puStack_88 != auStack_80) {
          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);
        }
        return LDPS_OK;
      }
      uVar7 = 0x7e8;
    }
    (**(code **)(pcVar14 + 0x24c8f4))
              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240);
    return LDPS_ERR;
  }
  uVar8 = 0x5c;
  puVar11 = (undefined4 *)(*(int *)(pcVar14 + 0x24c79c) + -0x742c);
  iVar3 = *(int *)(pcVar14 + 0x24c8e4) + -0x5cec;
  (*pcVar15)();
  if (*(char *)(iVar3 + 0x6b) == '\0') {
    if (((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&
        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&
       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)) {
      iVar3 = *(int *)(iVar5 + 0x1c);
      if (iVar3 != 0) goto LAB_001e5c68;
      (**(code **)(pcVar15 + 0x24c794))
                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,
                 *(undefined4 *)(iVar5 + 0x24));
    }
    return LDPS_BAD_HANDLE;
  }
  iVar3 = *(int *)(iVar3 + 0x28);
LAB_001e5c68:
  uVar7 = (**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20);
  *puVar11 = uVar7;
  return LDPS_OK;
}



undefined4 FUN_001e5854(void *param_1,undefined4 *param_2)

{
  Plugin_manager *this;
  int iVar1;
  undefined4 uVar2;
  
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {
    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);
    return uVar2;
  }
  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);
  if (this != (Plugin_manager *)0x0) {
    if ((this[0x6b] != (Plugin_manager)0x0) &&
       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {
      *param_2 = *(undefined4 *)(iVar1 + 0x28);
      return 0;
    }
    return 3;
  }
  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);
  return uVar2;
}


lui gp,0x25
addiu gp,gp,0x497c
addu gp,gp,t9
lw v0,-0x75f0(gp)
addiu sp,sp,-0x20
sw gp,0x10(sp)
lw v0,0x0(v0)
sw ra,0x1c(sp)
sw s0,0x18(sp)
lw v0,0x8(v0)
beq v0,zero,0x001e58f8
_lw a2,-0x7f64(gp)
lw v0,0x594c(v0)
beq v0,zero,0x001e58e0
_lw a2,-0x7f64(gp)
lbu v1,0x6b(v0)
beq v1,zero,0x001e58cc
_lw t9,-0x5490(gp)
or s0,a1,zero
or a1,a0,zero
bal 0x001e5404
_or a0,v0,zero
beq v0,zero,0x001e58cc
_lw ra,0x1c(sp)
lw v1,0x28(v0)
or v0,zero,zero
sw v1,0x0(s0)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
lw ra,0x1c(sp)
li v0,0x3
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
li a1,0x7af
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x72f0
jalr t9
_addiu a0,a0,-0x7b3c
li a1,0x5c
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x742c
jalr t9
_addiu a0,a0,-0x5cec
(translation_unit "undefined4 FUN_001e5854(void *param_1,undefined4 *param_2)\n\n{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_001e5854(void *param_1,undefined4 *param_2)\n\n{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}" type_identifier (function_declarator "FUN_001e5854(void *param_1,undefined4 *param_2)" identifier (parameter_list "(void *param_1,undefined4 *param_2)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}" { (declaration "Plugin_manager *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x742c" identifier + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);" (assignment_expression "this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }" if (parenthesized_expression "(this != (Plugin_manager *)0x0)" ( (binary_expression "this != (Plugin_manager *)0x0" identifier != (cast_expression "(Plugin_manager *)0x0" ( (type_descriptor "Plugin_manager *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }" { (if_statement "if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }" if (parenthesized_expression "((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0))" ( (binary_expression "(this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)" (parenthesized_expression "(this[0x6b] != (Plugin_manager)0x0)" ( (binary_expression "this[0x6b] != (Plugin_manager)0x0" (subscript_expression "this[0x6b]" identifier [ number_literal ]) != (cast_expression "(Plugin_manager)0x0" ( (type_descriptor "Plugin_manager" type_identifier) ) number_literal)) )) && (parenthesized_expression "(iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)" ( (ERROR "iVar1 = gold::Plugin_manager::" (assignment_expression "iVar1 = gold" identifier = identifier) : : identifier : :) (comma_expression "get_elf_object(this,param_1), iVar1 != 0" (call_expression "get_elf_object(this,param_1)" identifier (argument_list "(this,param_1)" ( identifier , identifier ))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }" { (expression_statement "*param_2 = *(undefined4 *)(iVar1 + 0x28);" (assignment_expression "*param_2 = *(undefined4 *)(iVar1 + 0x28)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(undefined4 *)(iVar1 + 0x28)" * (cast_expression "(undefined4 *)(iVar1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x28)" ( (binary_expression "iVar1 + 0x28" identifier + number_literal) ))))) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 3;" return number_literal ;) })) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" ( (binary_expression "PTR_DAT_0043226c + -0x7b3c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x72f0" identifier + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n\nld_plugin_status gold::get_input_section_count(void *handle,uint *count)\n\n{\n  Plugin_manager *pPVar1;\n  Object *pOVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined *puVar6;\n  void *handle_00;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined *puVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  int in_a3;\n  undefined4 *unaff_s0;\n  int unaff_s1;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int unaff_retaddr;\n  code *pcVar16;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  undefined4 *puStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  void *pvStack_60;\n  undefined4 uStack_5c;\n  undefined *puStack_50;\n  Object *pOStack_48;\n  undefined4 uStack_44;\n  undefined4 uStack_c;\n  \n  puVar9 = PTR_s__0043226c;\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    puVar9 = PTR_s__0043226c + -0x72f0;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af);\n  }\n  puVar10 = (undefined4 *)(puVar9 + -0x742c);\n  puVar6 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n  puVar13 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar6,0x5c);\n  puVar9 = puVar13 + 0x2548c0;\n  piVar12 = *(int **)(puVar13 + 0x24d2d0);\n  puVar11 = unaff_s0;\n  puStack_50 = puVar9;\n  if (*(int *)(*piVar12 + 8) == 0) {\nLAB_001e5a98:\n    puVar9 = puStack_50;\n    (**(code **)(puStack_50 + -0x7e0c))\n              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar7 = 0x8a6;\n  }\n  else {\n    iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);\n    uVar7 = 0x89d;\n    if (iVar3 != 0) {\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }\n  pcVar14 = *(code **)(puVar9 + -0x7e0c);\n  puVar10 = (undefined4 *)(*(int *)(puVar9 + -0x7f64) + -0x71b8);\n  pcVar16 = get_input_section_name;\n  handle_00 = (void *)(*(int *)(puVar9 + -0x7f64) + -0x7b3c);\n  (*pcVar14)();\n  pcVar15 = *(code **)(pcVar14 + 0x24c8f4);\n  puStack_6c = puVar11;\n  iStack_68 = unaff_s1;\n  pcStack_64 = pcVar16;\n  pvStack_60 = handle_00;\n  uStack_5c = uVar7;\n  if (*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c);\n    uVar7 = 0x7dc;\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }\n      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }\n      uVar7 = 0x7e8;\n    }\n    (**(code **)(pcVar14 + 0x24c8f4))\n              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240);\n    return LDPS_ERR;\n  }\n  uVar8 = 0x5c;\n  puVar11 = (undefined4 *)(*(int *)(pcVar14 + 0x24c79c) + -0x742c);\n  iVar3 = *(int *)(pcVar14 + 0x24c8e4) + -0x5cec;\n  (*pcVar15)();\n  if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)) {\n      iVar3 = *(int *)(iVar5 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }\n  iVar3 = *(int *)(iVar3 + 0x28);\nLAB_001e5c68:\n  uVar7 = (**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20);\n  *puVar11 = uVar7;\n  return LDPS_OK;\n}\n\n" comment comment comment comment comment comment (function_definition "ld_plugin_status gold::get_input_section_count(void *handle,uint *count)\n\n{\n  Plugin_manager *pPVar1;\n  Object *pOVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined *puVar6;\n  void *handle_00;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined *puVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  int in_a3;\n  undefined4 *unaff_s0;\n  int unaff_s1;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int unaff_retaddr;\n  code *pcVar16;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  undefined4 *puStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  void *pvStack_60;\n  undefined4 uStack_5c;\n  undefined *puStack_50;\n  Object *pOStack_48;\n  undefined4 uStack_44;\n  undefined4 uStack_c;\n  \n  puVar9 = PTR_s__0043226c;\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    puVar9 = PTR_s__0043226c + -0x72f0;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af);\n  }\n  puVar10 = (undefined4 *)(puVar9 + -0x742c);\n  puVar6 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n  puVar13 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar6,0x5c);\n  puVar9 = puVar13 + 0x2548c0;\n  piVar12 = *(int **)(puVar13 + 0x24d2d0);\n  puVar11 = unaff_s0;\n  puStack_50 = puVar9;\n  if (*(int *)(*piVar12 + 8) == 0) {\nLAB_001e5a98:\n    puVar9 = puStack_50;\n    (**(code **)(puStack_50 + -0x7e0c))\n              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar7 = 0x8a6;\n  }\n  else {\n    iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);\n    uVar7 = 0x89d;\n    if (iVar3 != 0) {\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }\n  pcVar14 = *(code **)(puVar9 + -0x7e0c);\n  puVar10 = (undefined4 *)(*(int *)(puVar9 + -0x7f64) + -0x71b8);\n  pcVar16 = get_input_section_name;\n  handle_00 = (void *)(*(int *)(puVar9 + -0x7f64) + -0x7b3c);\n  (*pcVar14)();\n  pcVar15 = *(code **)(pcVar14 + 0x24c8f4);\n  puStack_6c = puVar11;\n  iStack_68 = unaff_s1;\n  pcStack_64 = pcVar16;\n  pvStack_60 = handle_00;\n  uStack_5c = uVar7;\n  if (*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c);\n    uVar7 = 0x7dc;\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }\n      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }\n      uVar7 = 0x7e8;\n    }\n    (**(code **)(pcVar14 + 0x24c8f4))\n              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240);\n    return LDPS_ERR;\n  }\n  uVar8 = 0x5c;\n  puVar11 = (undefined4 *)(*(int *)(pcVar14 + 0x24c79c) + -0x742c);\n  iVar3 = *(int *)(pcVar14 + 0x24c8e4) + -0x5cec;\n  (*pcVar15)();\n  if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)) {\n      iVar3 = *(int *)(iVar5 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }\n  iVar3 = *(int *)(iVar3 + 0x28);\nLAB_001e5c68:\n  uVar7 = (**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20);\n  *puVar11 = uVar7;\n  return LDPS_OK;\n}" type_identifier (ERROR "gold::" identifier : :) (function_declarator "get_input_section_count(void *handle,uint *count)" identifier (parameter_list "(void *handle,uint *count)" ( (parameter_declaration "void *handle" primitive_type (pointer_declarator "*handle" * identifier)) , (parameter_declaration "uint *count" type_identifier (pointer_declarator "*count" * identifier)) ))) (compound_statement "{\n  Plugin_manager *pPVar1;\n  Object *pOVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined *puVar6;\n  void *handle_00;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined *puVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  int in_a3;\n  undefined4 *unaff_s0;\n  int unaff_s1;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int unaff_retaddr;\n  code *pcVar16;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  undefined4 *puStack_6c;\n  int iStack_68;\n  code *pcStack_64;\n  void *pvStack_60;\n  undefined4 uStack_5c;\n  undefined *puStack_50;\n  Object *pOStack_48;\n  undefined4 uStack_44;\n  undefined4 uStack_c;\n  \n  puVar9 = PTR_s__0043226c;\n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    puVar9 = PTR_s__0043226c + -0x72f0;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af);\n  }\n  puVar10 = (undefined4 *)(puVar9 + -0x742c);\n  puVar6 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n  puVar13 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar6,0x5c);\n  puVar9 = puVar13 + 0x2548c0;\n  piVar12 = *(int **)(puVar13 + 0x24d2d0);\n  puVar11 = unaff_s0;\n  puStack_50 = puVar9;\n  if (*(int *)(*piVar12 + 8) == 0) {\nLAB_001e5a98:\n    puVar9 = puStack_50;\n    (**(code **)(puStack_50 + -0x7e0c))\n              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar7 = 0x8a6;\n  }\n  else {\n    iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);\n    uVar7 = 0x89d;\n    if (iVar3 != 0) {\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }\n  pcVar14 = *(code **)(puVar9 + -0x7e0c);\n  puVar10 = (undefined4 *)(*(int *)(puVar9 + -0x7f64) + -0x71b8);\n  pcVar16 = get_input_section_name;\n  handle_00 = (void *)(*(int *)(puVar9 + -0x7f64) + -0x7b3c);\n  (*pcVar14)();\n  pcVar15 = *(code **)(pcVar14 + 0x24c8f4);\n  puStack_6c = puVar11;\n  iStack_68 = unaff_s1;\n  pcStack_64 = pcVar16;\n  pvStack_60 = handle_00;\n  uStack_5c = uVar7;\n  if (*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c);\n    uVar7 = 0x7dc;\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }\n      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }\n      uVar7 = 0x7e8;\n    }\n    (**(code **)(pcVar14 + 0x24c8f4))\n              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240);\n    return LDPS_ERR;\n  }\n  uVar8 = 0x5c;\n  puVar11 = (undefined4 *)(*(int *)(pcVar14 + 0x24c79c) + -0x742c);\n  iVar3 = *(int *)(pcVar14 + 0x24c8e4) + -0x5cec;\n  (*pcVar15)();\n  if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)) {\n      iVar3 = *(int *)(iVar5 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }\n  iVar3 = *(int *)(iVar3 + 0x28);\nLAB_001e5c68:\n  uVar7 = (**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20);\n  *puVar11 = uVar7;\n  return LDPS_OK;\n}" { (declaration "Plugin_manager *pPVar1;" type_identifier (pointer_declarator "*pPVar1" * identifier) ;) (declaration "Object *pOVar2;" type_identifier (pointer_declarator "*pOVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "void *handle_00;" primitive_type (pointer_declarator "*handle_00" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int in_a3;" primitive_type identifier ;) (declaration "undefined4 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined1 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined1 auStack_80 [20];" type_identifier (array_declarator "auStack_80 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "int iStack_68;" primitive_type identifier ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "void *pvStack_60;" primitive_type (pointer_declarator "*pvStack_60" * identifier) ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "undefined *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "Object *pOStack_48;" type_identifier (pointer_declarator "*pOStack_48" * identifier) ;) (declaration "undefined4 uStack_44;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "puVar9 = PTR_s__0043226c;" (assignment_expression "puVar9 = PTR_s__0043226c" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    puVar9 = PTR_s__0043226c + -0x72f0;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af);\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    puVar9 = PTR_s__0043226c + -0x72f0;\n    (*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af);\n  }" { (expression_statement "pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);" (assignment_expression "pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }" if (parenthesized_expression "(pPVar1 != (Plugin_manager *)0x0)" ( (binary_expression "pPVar1 != (Plugin_manager *)0x0" identifier != (cast_expression "(Plugin_manager *)0x0" ( (type_descriptor "Plugin_manager *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }" { (if_statement "if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)) {\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }" if (parenthesized_expression "((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0))" ( (binary_expression "(pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)" (parenthesized_expression "(pPVar1->in_claim_file_handler_ != false)" ( (binary_expression "pPVar1->in_claim_file_handler_ != false" (field_expression "pPVar1->in_claim_file_handler_" identifier -> field_identifier) != false) )) && (parenthesized_expression "(pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0)" ( (ERROR "pOVar2 = Plugin_manager::" (assignment_expression "pOVar2 = Plugin_manager" identifier = identifier) : :) (comma_expression "get_elf_object(pPVar1,handle), pOVar2 != (Object *)0x0" (call_expression "get_elf_object(pPVar1,handle)" identifier (argument_list "(pPVar1,handle)" ( identifier , identifier ))) , (binary_expression "pOVar2 != (Object *)0x0" identifier != (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        *count = pOVar2->shnum_;\n        return LDPS_OK;\n      }" { (expression_statement "*count = pOVar2->shnum_;" (assignment_expression "*count = pOVar2->shnum_" (pointer_expression "*count" * identifier) = (field_expression "pOVar2->shnum_" identifier -> field_identifier)) ;) (return_statement "return LDPS_OK;" return identifier ;) })) (return_statement "return LDPS_ERR;" return identifier ;) })) (expression_statement "puVar9 = PTR_s__0043226c + -0x72f0;" (assignment_expression "puVar9 = PTR_s__0043226c + -0x72f0" identifier = (binary_expression "PTR_s__0043226c + -0x72f0" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(PTR_s__0043226c + -0x7b3c,0x7af)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + -0x7b3c,0x7af)" ( (binary_expression "PTR_s__0043226c + -0x7b3c" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "puVar10 = (undefined4 *)(puVar9 + -0x742c);" (assignment_expression "puVar10 = (undefined4 *)(puVar9 + -0x742c)" identifier = (cast_expression "(undefined4 *)(puVar9 + -0x742c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x742c)" ( (binary_expression "puVar9 + -0x742c" identifier + number_literal) )))) ;) (expression_statement "puVar6 = PTR_s_alize_xindex_004323b4 + -0x5cec;" (assignment_expression "puVar6 = PTR_s_alize_xindex_004323b4 + -0x5cec" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal)) ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar6,0x5c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar6,0x5c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "puVar9 = puVar13 + 0x2548c0;" (assignment_expression "puVar9 = puVar13 + 0x2548c0" identifier = (binary_expression "puVar13 + 0x2548c0" identifier + number_literal)) ;) (expression_statement "piVar12 = *(int **)(puVar13 + 0x24d2d0);" (assignment_expression "piVar12 = *(int **)(puVar13 + 0x24d2d0)" identifier = (pointer_expression "*(int **)(puVar13 + 0x24d2d0)" * (cast_expression "(int **)(puVar13 + 0x24d2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x24d2d0)" ( (binary_expression "puVar13 + 0x24d2d0" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = unaff_s0;" (assignment_expression "puVar11 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_50 = puVar9;" (assignment_expression "puStack_50 = puVar9" identifier = identifier) ;) (if_statement "if (*(int *)(*piVar12 + 8) == 0) {\nLAB_001e5a98:\n    puVar9 = puStack_50;\n    (**(code **)(puStack_50 + -0x7e0c))\n              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar7 = 0x8a6;\n  }\n  else {\n    iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);\n    uVar7 = 0x89d;\n    if (iVar3 != 0) {\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }" if (parenthesized_expression "(*(int *)(*piVar12 + 8) == 0)" ( (binary_expression "*(int *)(*piVar12 + 8) == 0" (pointer_expression "*(int *)(*piVar12 + 8)" * (cast_expression "(int *)(*piVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar12 + 8)" ( (binary_expression "*piVar12 + 8" (pointer_expression "*piVar12" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001e5a98:\n    puVar9 = puStack_50;\n    (**(code **)(puStack_50 + -0x7e0c))\n              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar7 = 0x8a6;\n  }" { (labeled_statement "LAB_001e5a98:\n    puVar9 = puStack_50;" statement_identifier : (expression_statement "puVar9 = puStack_50;" (assignment_expression "puVar9 = puStack_50" identifier = identifier) ;)) (expression_statement "(**(code **)(puStack_50 + -0x7e0c))\n              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c);" (call_expression "(**(code **)(puStack_50 + -0x7e0c))\n              (*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c)" (parenthesized_expression "(**(code **)(puStack_50 + -0x7e0c))" ( (pointer_expression "**(code **)(puStack_50 + -0x7e0c)" * (pointer_expression "*(code **)(puStack_50 + -0x7e0c)" * (cast_expression "(code **)(puStack_50 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_50 + -0x7e0c)" ( (binary_expression "puStack_50 + -0x7e0c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_50 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(puStack_50 + -0x7f64) + -0x742c)" ( (binary_expression "*(int *)(puStack_50 + -0x7e1c) + -0x5cec" (pointer_expression "*(int *)(puStack_50 + -0x7e1c)" * (cast_expression "(int *)(puStack_50 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_50 + -0x7e1c)" ( (binary_expression "puStack_50 + -0x7e1c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puStack_50 + -0x7f64) + -0x742c" (pointer_expression "*(int *)(puStack_50 + -0x7f64)" * (cast_expression "(int *)(puStack_50 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_50 + -0x7f64)" ( (binary_expression "puStack_50 + -0x7f64" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001e5ab4:\n    uVar7 = 0x8a6;" statement_identifier : (expression_statement "uVar7 = 0x8a6;" (assignment_expression "uVar7 = 0x8a6" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);\n    uVar7 = 0x89d;\n    if (iVar3 != 0) {\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }" else (compound_statement "{\n    iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);\n    uVar7 = 0x89d;\n    if (iVar3 != 0) {\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }" { (expression_statement "iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c);" (assignment_expression "iVar3 = *(int *)(*(int *)(*piVar12 + 8) + 0x594c)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar12 + 8) + 0x594c)" * (cast_expression "(int *)(*(int *)(*piVar12 + 8) + 0x594c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar12 + 8) + 0x594c)" ( (binary_expression "*(int *)(*piVar12 + 8) + 0x594c" (pointer_expression "*(int *)(*piVar12 + 8)" * (cast_expression "(int *)(*piVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar12 + 8)" ( (binary_expression "*piVar12 + 8" (pointer_expression "*piVar12" * identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar7 = 0x89d;" (assignment_expression "uVar7 = 0x89d" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) {\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar3 = *(int *)(iVar3 + 0x80);\n      if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }" { (if_statement "if (unaff_retaddr == 0) {\n        return LDPS_OK;\n      }" if (parenthesized_expression "(unaff_retaddr == 0)" ( (binary_expression "unaff_retaddr == 0" identifier == number_literal) )) (compound_statement "{\n        return LDPS_OK;\n      }" { (return_statement "return LDPS_OK;" return identifier ;) })) (if_statement "if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }" if (parenthesized_expression "(unaff_s0 == (undefined4 *)0x0)" ( (binary_expression "unaff_s0 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return LDPS_ERR;\n      }" { (return_statement "return LDPS_ERR;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(iVar3 + 0x80);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x80)" identifier = (pointer_expression "*(int *)(iVar3 + 0x80)" * (cast_expression "(int *)(iVar3 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x80)" ( (binary_expression "iVar3 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);\n        iVar5 = *piVar12;\n        *puVar4 = puVar6;\n        puVar4[3] = in_a3;\n        puVar4[2] = puVar10;\n        puVar4[5] = uStack_c;\n        puVar4[4] = 0x43a1d0;\n        iVar5 = *(int *)(iVar5 + 8);\n        puVar11 = puVar10;\n        unaff_s1 = in_a3;\n        if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }\n        goto LAB_001e5a98;\n      }" { (expression_statement "puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18);" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18)" identifier = (cast_expression "(undefined4 *)(**(code **)(puVar13 + 0x24ca2c))(0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar13 + 0x24ca2c))(0x18)" (parenthesized_expression "(**(code **)(puVar13 + 0x24ca2c))" ( (pointer_expression "**(code **)(puVar13 + 0x24ca2c)" * (pointer_expression "*(code **)(puVar13 + 0x24ca2c)" * (cast_expression "(code **)(puVar13 + 0x24ca2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x24ca2c)" ( (binary_expression "puVar13 + 0x24ca2c" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "*puVar4 = puVar6;" (assignment_expression "*puVar4 = puVar6" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[3] = in_a3;" (assignment_expression "puVar4[3] = in_a3" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = puVar10;" (assignment_expression "puVar4[2] = puVar10" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[5] = uStack_c;" (assignment_expression "puVar4[5] = uStack_c" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = 0x43a1d0;" (assignment_expression "puVar4[4] = 0x43a1d0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = *(int *)(iVar5 + 8);" (assignment_expression "iVar5 = *(int *)(iVar5 + 8)" identifier = (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (expression_statement "unaff_s1 = in_a3;" (assignment_expression "unaff_s1 = in_a3" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          unaff_s1 = 0;\n          puVar11 = unaff_s0;\n          do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);\n        }" { (expression_statement "unaff_s1 = 0;" (assignment_expression "unaff_s1 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = unaff_s0;" (assignment_expression "puVar11 = unaff_s0" identifier = identifier) ;) (do_statement "do {\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          } while (iVar5 != 0);" do (compound_statement "{\n            pOStack_48 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);\n            if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_44 = puVar11[1];\n            (**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);\n            if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar5 = *(int *)(*piVar12 + 8);\n            puVar11 = puVar11 + 2;\n          }" { (ERROR "pOStack_48 = Plugin_manager::" (assignment_expression "pOStack_48 = Plugin_manager" identifier = identifier) : :) (expression_statement "get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11);" (call_expression "get_elf_object\n                                   (*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11)" identifier (argument_list "(*(Plugin_manager **)(iVar5 + 0x594c),(void *)*puVar11)" ( (pointer_expression "*(Plugin_manager **)(iVar5 + 0x594c)" * (cast_expression "(Plugin_manager **)(iVar5 + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x594c)" ( (binary_expression "iVar5 + 0x594c" identifier + number_literal) )))) , (cast_expression "(void *)*puVar11" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier)) ))) ;) (if_statement "if ((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }" if (parenthesized_expression "((pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0))" ( (binary_expression "(pOStack_48 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)" (parenthesized_expression "(pOStack_48 == (Object *)0x0)" ( (binary_expression "pOStack_48 == (Object *)0x0" identifier == (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0)" ( (comma_expression "unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_48->field_0x2c < 0" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) , (binary_expression "*(int *)&pOStack_48->field_0x2c < 0" (pointer_expression "*(int *)&pOStack_48->field_0x2c" * (cast_expression "(int *)&pOStack_48->field_0x2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOStack_48->field_0x2c" & (field_expression "pOStack_48->field_0x2c" identifier -> field_identifier)))) < number_literal)) ))) )) (compound_statement "{\n              return LDPS_BAD_HANDLE;\n            }" { (return_statement "return LDPS_BAD_HANDLE;" return identifier ;) })) (expression_statement "uStack_44 = puVar11[1];" (assignment_expression "uStack_44 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "(**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4);" (call_expression "(**(code **)(puStack_50 + -0x548c))(iVar3,pOStack_48,uStack_44,puVar4)" (parenthesized_expression "(**(code **)(puStack_50 + -0x548c))" ( (pointer_expression "**(code **)(puStack_50 + -0x548c)" * (pointer_expression "*(code **)(puStack_50 + -0x548c)" * (cast_expression "(code **)(puStack_50 + -0x548c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_50 + -0x548c)" ( (binary_expression "puStack_50 + -0x548c" identifier + number_literal) ))))) )) (argument_list "(iVar3,pOStack_48,uStack_44,puVar4)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (unaff_retaddr == unaff_s1) {\n              return LDPS_OK;\n            }" if (parenthesized_expression "(unaff_retaddr == unaff_s1)" ( (binary_expression "unaff_retaddr == unaff_s1" identifier == identifier) )) (compound_statement "{\n              return LDPS_OK;\n            }" { (return_statement "return LDPS_OK;" return identifier ;) })) (expression_statement "iVar5 = *(int *)(*piVar12 + 8);" (assignment_expression "iVar5 = *(int *)(*piVar12 + 8)" identifier = (pointer_expression "*(int *)(*piVar12 + 8)" * (cast_expression "(int *)(*piVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar12 + 8)" ( (binary_expression "*piVar12 + 8" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) ;) (expression_statement "puVar11 = puVar11 + 2;" (assignment_expression "puVar11 = puVar11 + 2" identifier = (binary_expression "puVar11 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) })) (goto_statement "goto LAB_001e5a98;" goto statement_identifier ;) })) (goto_statement "goto LAB_001e5ab4;" goto statement_identifier ;) })) }))) (expression_statement "pcVar14 = *(code **)(puVar9 + -0x7e0c);" (assignment_expression "pcVar14 = *(code **)(puVar9 + -0x7e0c)" identifier = (pointer_expression "*(code **)(puVar9 + -0x7e0c)" * (cast_expression "(code **)(puVar9 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x7e0c)" ( (binary_expression "puVar9 + -0x7e0c" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = (undefined4 *)(*(int *)(puVar9 + -0x7f64) + -0x71b8);" (assignment_expression "puVar10 = (undefined4 *)(*(int *)(puVar9 + -0x7f64) + -0x71b8)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar9 + -0x7f64) + -0x71b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + -0x7f64) + -0x71b8)" ( (binary_expression "*(int *)(puVar9 + -0x7f64) + -0x71b8" (pointer_expression "*(int *)(puVar9 + -0x7f64)" * (cast_expression "(int *)(puVar9 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x7f64)" ( (binary_expression "puVar9 + -0x7f64" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar16 = get_input_section_name;" (assignment_expression "pcVar16 = get_input_section_name" identifier = identifier) ;) (expression_statement "handle_00 = (void *)(*(int *)(puVar9 + -0x7f64) + -0x7b3c);" (assignment_expression "handle_00 = (void *)(*(int *)(puVar9 + -0x7f64) + -0x7b3c)" identifier = (cast_expression "(void *)(*(int *)(puVar9 + -0x7f64) + -0x7b3c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + -0x7f64) + -0x7b3c)" ( (binary_expression "*(int *)(puVar9 + -0x7f64) + -0x7b3c" (pointer_expression "*(int *)(puVar9 + -0x7f64)" * (cast_expression "(int *)(puVar9 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x7f64)" ( (binary_expression "puVar9 + -0x7f64" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x24c8f4);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x24c8f4)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x24c8f4)" * (cast_expression "(code **)(pcVar14 + 0x24c8f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24c8f4)" ( (binary_expression "pcVar14 + 0x24c8f4" identifier + number_literal) ))))) ;) (expression_statement "puStack_6c = puVar11;" (assignment_expression "puStack_6c = puVar11" identifier = identifier) ;) (expression_statement "iStack_68 = unaff_s1;" (assignment_expression "iStack_68 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar16;" (assignment_expression "pcStack_64 = pcVar16" identifier = identifier) ;) (expression_statement "pvStack_60 = handle_00;" (assignment_expression "pvStack_60 = handle_00" identifier = identifier) ;) (expression_statement "uStack_5c = uVar7;" (assignment_expression "uStack_5c = uVar7" identifier = identifier) ;) (if_statement "if (*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c);\n    uVar7 = 0x7dc;\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }\n      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }\n      uVar7 = 0x7e8;\n    }\n    (**(code **)(pcVar14 + 0x24c8f4))\n              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240);\n    return LDPS_ERR;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) != 0)" ( (binary_expression "*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) != 0" (pointer_expression "*(int *)(**(int **)(pcVar14 + 0x24d110) + 8)" * (cast_expression "(int *)(**(int **)(pcVar14 + 0x24d110) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar14 + 0x24d110) + 8)" ( (binary_expression "**(int **)(pcVar14 + 0x24d110) + 8" (pointer_expression "**(int **)(pcVar14 + 0x24d110)" * (pointer_expression "*(int **)(pcVar14 + 0x24d110)" * (cast_expression "(int **)(pcVar14 + 0x24d110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24d110)" ( (binary_expression "pcVar14 + 0x24d110" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c);\n    uVar7 = 0x7dc;\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }\n      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }\n      uVar7 = 0x7e8;\n    }\n    (**(code **)(pcVar14 + 0x24c8f4))\n              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240);\n    return LDPS_ERR;\n  }" { (expression_statement "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c);" (assignment_expression "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c)" ( (binary_expression "*(int *)(**(int **)(pcVar14 + 0x24d110) + 8) + 0x594c" (pointer_expression "*(int *)(**(int **)(pcVar14 + 0x24d110) + 8)" * (cast_expression "(int *)(**(int **)(pcVar14 + 0x24d110) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar14 + 0x24d110) + 8)" ( (binary_expression "**(int **)(pcVar14 + 0x24d110) + 8" (pointer_expression "**(int **)(pcVar14 + 0x24d110)" * (pointer_expression "*(int **)(pcVar14 + 0x24d110)" * (cast_expression "(int **)(pcVar14 + 0x24d110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24d110)" ( (binary_expression "pcVar14 + 0x24d110" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar7 = 0x7dc;" (assignment_expression "uVar7 = 0x7dc" identifier = number_literal) ;) (if_statement "if (pPVar1 != (Plugin_manager *)0x0) {\n      if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }\n      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }\n      uVar7 = 0x7e8;\n    }" if (parenthesized_expression "(pPVar1 != (Plugin_manager *)0x0)" ( (binary_expression "pPVar1 != (Plugin_manager *)0x0" identifier != (cast_expression "(Plugin_manager *)0x0" ( (type_descriptor "Plugin_manager *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }\n      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle_00);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }\n      uVar7 = 0x7e8;\n    }" { (if_statement "if (pPVar1->in_claim_file_handler_ == false) {\n        return LDPS_ERR;\n      }" if (parenthesized_expression "(pPVar1->in_claim_file_handler_ == false)" ( (binary_expression "pPVar1->in_claim_file_handler_ == false" (field_expression "pPVar1->in_claim_file_handler_" identifier -> field_identifier) == false) )) (compound_statement "{\n        return LDPS_ERR;\n      }" { (return_statement "return LDPS_ERR;" return identifier ;) })) (ERROR "pOVar2 = Plugin_manager::" (assignment_expression "pOVar2 = Plugin_manager" identifier = identifier) : :) (expression_statement "get_elf_object(pPVar1,handle_00);" (call_expression "get_elf_object(pPVar1,handle_00)" identifier (argument_list "(pPVar1,handle_00)" ( identifier , identifier ))) ;) (if_statement "if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }" if (parenthesized_expression "(pOVar2 == (Object *)0x0)" ( (binary_expression "pOVar2 == (Object *)0x0" identifier == (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return LDPS_BAD_HANDLE;\n      }" { (return_statement "return LDPS_BAD_HANDLE;" return identifier ;) })) (if_statement "if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }" if (parenthesized_expression "((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0))" ( (binary_expression "(pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)" (parenthesized_expression "(pOVar2->input_file_ != (Input_file *)0x0)" ( (binary_expression "pOVar2->input_file_ != (Input_file *)0x0" (field_expression "pOVar2->input_file_" identifier -> field_identifier) != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)" ( (comma_expression "iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_)" identifier = (call_expression "(**(code **)(pcVar14 + 0x24d2dc))(&pOVar2->input_file_->file_)" (parenthesized_expression "(**(code **)(pcVar14 + 0x24d2dc))" ( (pointer_expression "**(code **)(pcVar14 + 0x24d2dc)" * (pointer_expression "*(code **)(pcVar14 + 0x24d2dc)" * (cast_expression "(code **)(pcVar14 + 0x24d2dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24d2dc)" ( (binary_expression "pcVar14 + 0x24d2dc" identifier + number_literal) ))))) )) (argument_list "(&pOVar2->input_file_->file_)" ( (pointer_expression "&pOVar2->input_file_->file_" & (field_expression "pOVar2->input_file_->file_" (field_expression "pOVar2->input_file_" identifier -> field_identifier) -> field_identifier)) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        (*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);\n        uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);\n        *puVar10 = uVar7;\n        (**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);\n        if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }\n        return LDPS_OK;\n      }" { (expression_statement "(*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c);" (call_expression "(*pOVar2->_vptr_Object[0x10])(&puStack_88,pOVar2,uStack_5c)" (parenthesized_expression "(*pOVar2->_vptr_Object[0x10])" ( (pointer_expression "*pOVar2->_vptr_Object[0x10]" * (subscript_expression "pOVar2->_vptr_Object[0x10]" (field_expression "pOVar2->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(&puStack_88,pOVar2,uStack_5c)" ( (pointer_expression "&puStack_88" & identifier) , identifier , identifier ))) ;) (expression_statement "uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1);" (assignment_expression "uVar7 = (**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1)" identifier = (call_expression "(**(code **)(pcVar14 + 0x250c48))(iStack_84 + 1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x250c48))" ( (pointer_expression "**(code **)(pcVar14 + 0x250c48)" * (pointer_expression "*(code **)(pcVar14 + 0x250c48)" * (cast_expression "(code **)(pcVar14 + 0x250c48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x250c48)" ( (binary_expression "pcVar14 + 0x250c48" identifier + number_literal) ))))) )) (argument_list "(iStack_84 + 1)" ( (binary_expression "iStack_84 + 1" identifier + number_literal) )))) ;) (expression_statement "*puVar10 = uVar7;" (assignment_expression "*puVar10 = uVar7" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "(**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1);" (call_expression "(**(code **)(pcVar14 + 0x250cb8))(uVar7,puStack_88,iStack_84 + 1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x250cb8))" ( (pointer_expression "**(code **)(pcVar14 + 0x250cb8)" * (pointer_expression "*(code **)(pcVar14 + 0x250cb8)" * (cast_expression "(code **)(pcVar14 + 0x250cb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x250cb8)" ( (binary_expression "pcVar14 + 0x250cb8" identifier + number_literal) ))))) )) (argument_list "(uVar7,puStack_88,iStack_84 + 1)" ( identifier , identifier , (binary_expression "iStack_84 + 1" identifier + number_literal) ))) ;) (if_statement "if (puStack_88 != auStack_80) {\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }" if (parenthesized_expression "(puStack_88 != auStack_80)" ( (binary_expression "puStack_88 != auStack_80" identifier != identifier) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x24c7bc))(puStack_88);\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x24c7bc))(puStack_88);" (call_expression "(**(code **)(pcVar14 + 0x24c7bc))(puStack_88)" (parenthesized_expression "(**(code **)(pcVar14 + 0x24c7bc))" ( (pointer_expression "**(code **)(pcVar14 + 0x24c7bc)" * (pointer_expression "*(code **)(pcVar14 + 0x24c7bc)" * (cast_expression "(code **)(pcVar14 + 0x24c7bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24c7bc)" ( (binary_expression "pcVar14 + 0x24c7bc" identifier + number_literal) ))))) )) (argument_list "(puStack_88)" ( identifier ))) ;) })) (return_statement "return LDPS_OK;" return identifier ;) })) (expression_statement "uVar7 = 0x7e8;" (assignment_expression "uVar7 = 0x7e8" identifier = number_literal) ;) })) (expression_statement "(**(code **)(pcVar14 + 0x24c8f4))\n              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240);" (call_expression "(**(code **)(pcVar14 + 0x24c8f4))\n              (*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240)" (parenthesized_expression "(**(code **)(pcVar14 + 0x24c8f4))" ( (pointer_expression "**(code **)(pcVar14 + 0x24c8f4)" * (pointer_expression "*(code **)(pcVar14 + 0x24c8f4)" * (cast_expression "(code **)(pcVar14 + 0x24c8f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x24c8f4)" ( (binary_expression "pcVar14 + 0x24c8f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(pcVar14 + 0x24c79c) + -0x7240)" ( (binary_expression "*(int *)(pcVar14 + 0x24c79c) + -0x7b3c" (pointer_expression "*(int *)(pcVar14 + 0x24c79c)" * (cast_expression "(int *)(pcVar14 + 0x24c79c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x24c79c)" ( (binary_expression "pcVar14 + 0x24c79c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar14 + 0x24c79c) + -0x7240" (pointer_expression "*(int *)(pcVar14 + 0x24c79c)" * (cast_expression "(int *)(pcVar14 + 0x24c79c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x24c79c)" ( (binary_expression "pcVar14 + 0x24c79c" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return LDPS_ERR;" return identifier ;) })) (expression_statement "uVar8 = 0x5c;" (assignment_expression "uVar8 = 0x5c" identifier = number_literal) ;) (expression_statement "puVar11 = (undefined4 *)(*(int *)(pcVar14 + 0x24c79c) + -0x742c);" (assignment_expression "puVar11 = (undefined4 *)(*(int *)(pcVar14 + 0x24c79c) + -0x742c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar14 + 0x24c79c) + -0x742c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar14 + 0x24c79c) + -0x742c)" ( (binary_expression "*(int *)(pcVar14 + 0x24c79c) + -0x742c" (pointer_expression "*(int *)(pcVar14 + 0x24c79c)" * (cast_expression "(int *)(pcVar14 + 0x24c79c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x24c79c)" ( (binary_expression "pcVar14 + 0x24c79c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar3 = *(int *)(pcVar14 + 0x24c8e4) + -0x5cec;" (assignment_expression "iVar3 = *(int *)(pcVar14 + 0x24c8e4) + -0x5cec" identifier = (binary_expression "*(int *)(pcVar14 + 0x24c8e4) + -0x5cec" (pointer_expression "*(int *)(pcVar14 + 0x24c8e4)" * (cast_expression "(int *)(pcVar14 + 0x24c8e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x24c8e4)" ( (binary_expression "pcVar14 + 0x24c8e4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)) {\n      iVar3 = *(int *)(iVar5 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }" if (parenthesized_expression "(*(char *)(iVar3 + 0x6b) == '\0')" ( (binary_expression "*(char *)(iVar3 + 0x6b) == '\0'" (pointer_expression "*(char *)(iVar3 + 0x6b)" * (cast_expression "(char *)(iVar3 + 0x6b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6b)" ( (binary_expression "iVar3 + 0x6b" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)) {\n      iVar3 = *(int *)(iVar5 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }" { (if_statement "if (((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)) {\n      iVar3 = *(int *)(iVar5 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));\n    }" if (parenthesized_expression "(((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0))" ( (binary_expression "((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)) &&\n       (iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)" (parenthesized_expression "((uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0))" ( (binary_expression "(uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)" (parenthesized_expression "(uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2))" ( (binary_expression "uVar8 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)" identifier < (call_expression "(uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)" ( (binary_expression "*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2" (binary_expression "*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10)" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) >> number_literal) )))) )) && (parenthesized_expression "(piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0)" ( (comma_expression "piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4), piVar12 != (int *)0x0" (assignment_expression "piVar12 = *(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4)" * (cast_expression "(int **)(*(int *)(iVar3 + 0x10) + uVar8 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar3 + 0x10) + uVar8 * 4)" ( (binary_expression "*(int *)(iVar3 + 0x10) + uVar8 * 4" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) , (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0)" ( (comma_expression "iVar5 = (**(code **)(*piVar12 + 0x14))(), iVar5 != 0" (assignment_expression "iVar5 = (**(code **)(*piVar12 + 0x14))()" identifier = (call_expression "(**(code **)(*piVar12 + 0x14))()" (parenthesized_expression "(**(code **)(*piVar12 + 0x14))" ( (pointer_expression "**(code **)(*piVar12 + 0x14)" * (pointer_expression "*(code **)(*piVar12 + 0x14)" * (cast_expression "(code **)(*piVar12 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x14)" ( (binary_expression "*piVar12 + 0x14" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar3 = *(int *)(iVar5 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));\n    }" { (expression_statement "iVar3 = *(int *)(iVar5 + 0x1c);" (assignment_expression "iVar3 = *(int *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x1c)" * (cast_expression "(int *)(iVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) goto LAB_001e5c68;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001e5c68;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24));" (call_expression "(**(code **)(pcVar15 + 0x24c794))\n                (*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24))" (parenthesized_expression "(**(code **)(pcVar15 + 0x24c794))" ( (pointer_expression "**(code **)(pcVar15 + 0x24c794)" * (pointer_expression "*(code **)(pcVar15 + 0x24c794)" * (cast_expression "(code **)(pcVar15 + 0x24c794)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x24c794)" ( (binary_expression "pcVar15 + 0x24c794" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar15 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar5 + 0x24))" ( (binary_expression "*(int *)(pcVar15 + 0x24c5dc) + 0x44a8" (pointer_expression "*(int *)(pcVar15 + 0x24c5dc)" * (cast_expression "(int *)(pcVar15 + 0x24c5dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x24c5dc)" ( (binary_expression "pcVar15 + 0x24c5dc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x24c63c) + -0x75b4" (pointer_expression "*(int *)(pcVar15 + 0x24c63c)" * (cast_expression "(int *)(pcVar15 + 0x24c63c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x24c63c)" ( (binary_expression "pcVar15 + 0x24c63c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(iVar5 + 0x24)" * (cast_expression "(undefined4 *)(iVar5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) ))) ;) })) (return_statement "return LDPS_BAD_HANDLE;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(iVar3 + 0x28);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x28)" identifier = (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001e5c68:\n  uVar7 = (**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20);" statement_identifier : (expression_statement "uVar7 = (**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20);" (assignment_expression "uVar7 = (**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20)" identifier = (call_expression "(**(code **)(pcVar15 + 0x24c86c))(iVar3 + 0x20)" (parenthesized_expression "(**(code **)(pcVar15 + 0x24c86c))" ( (pointer_expression "**(code **)(pcVar15 + 0x24c86c)" * (pointer_expression "*(code **)(pcVar15 + 0x24c86c)" * (cast_expression "(code **)(pcVar15 + 0x24c86c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x24c86c)" ( (binary_expression "pcVar15 + 0x24c86c" identifier + number_literal) ))))) )) (argument_list "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) ;)) (expression_statement "*puVar11 = uVar7;" (assignment_expression "*puVar11 = uVar7" (pointer_expression "*puVar11" * identifier) = identifier) ;) (return_statement "return LDPS_OK;" return identifier ;) })))
(translation_unit "undefined4 FUN_001e5854(void *param_1,undefined4 *param_2)\n\n{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_001e5854(void *param_1,undefined4 *param_2)\n\n{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}" type_identifier (function_declarator "FUN_001e5854(void *param_1,undefined4 *param_2)" identifier (parameter_list "(void *param_1,undefined4 *param_2)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}" { (declaration "Plugin_manager *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x742c" identifier + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);" (assignment_expression "this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" ( (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" * (cast_expression "(int *)PTR_parameters_00432be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }" if (parenthesized_expression "(this != (Plugin_manager *)0x0)" ( (binary_expression "this != (Plugin_manager *)0x0" identifier != (cast_expression "(Plugin_manager *)0x0" ( (type_descriptor "Plugin_manager *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }" { (if_statement "if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }" if (parenthesized_expression "((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0))" ( (binary_expression "(this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)" (parenthesized_expression "(this[0x6b] != (Plugin_manager)0x0)" ( (binary_expression "this[0x6b] != (Plugin_manager)0x0" (subscript_expression "this[0x6b]" identifier [ number_literal ]) != (cast_expression "(Plugin_manager)0x0" ( (type_descriptor "Plugin_manager" type_identifier) ) number_literal)) )) && (parenthesized_expression "(iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)" ( (ERROR "iVar1 = gold::Plugin_manager::" (assignment_expression "iVar1 = gold" identifier = identifier) : : identifier : :) (comma_expression "get_elf_object(this,param_1), iVar1 != 0" (call_expression "get_elf_object(this,param_1)" identifier (argument_list "(this,param_1)" ( identifier , identifier ))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }" { (expression_statement "*param_2 = *(undefined4 *)(iVar1 + 0x28);" (assignment_expression "*param_2 = *(undefined4 *)(iVar1 + 0x28)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(undefined4 *)(iVar1 + 0x28)" * (cast_expression "(undefined4 *)(iVar1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x28)" ( (binary_expression "iVar1 + 0x28" identifier + number_literal) ))))) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 3;" return number_literal ;) })) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" ( (binary_expression "PTR_DAT_0043226c + -0x7b3c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x72f0" identifier + number_literal) )))) ;) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) && (parenthesized_expression ( (ERROR (assignment_expression IDENT = IDENT) : : IDENT : :) (comma_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_001e5854(void *param_1,undefined4 *param_2)\n\n{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}" (type_identifier "undefined4") (function_declarator "FUN_001e5854(void *param_1,undefined4 *param_2)" (identifier "FUN_001e5854") (parameter_list "(void *param_1,undefined4 *param_2)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  Plugin_manager *this;\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }\n  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n  if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);\n  return uVar2;\n}" ({ "{") (declaration "Plugin_manager *this;" (type_identifier "Plugin_manager") (pointer_declarator "*this" (* "*") (identifier "this")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);\n    return uVar2;\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "PTR_DAT_0043226c + -0x742c" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x742c")) () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);" (assignment_expression "this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" (identifier "this") (= "=") (pointer_expression "*(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" (* "*") (cast_expression "(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" (( "(") (type_descriptor "Plugin_manager **" (type_identifier "Plugin_manager") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c" (pointer_expression "*(int *)(*(int *)PTR_parameters_00432be0 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_00432be0 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_00432be0 + 8" (pointer_expression "*(int *)PTR_parameters_00432be0" (* "*") (cast_expression "(int *)PTR_parameters_00432be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_00432be0"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x594c")) () ")"))))) (; ";")) (if_statement "if (this != (Plugin_manager *)0x0) {\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }" (if "if") (parenthesized_expression "(this != (Plugin_manager *)0x0)" (( "(") (binary_expression "this != (Plugin_manager *)0x0" (identifier "this") (!= "!=") (cast_expression "(Plugin_manager *)0x0" (( "(") (type_descriptor "Plugin_manager *" (type_identifier "Plugin_manager") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }\n    return 3;\n  }" ({ "{") (if_statement "if ((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }" (if "if") (parenthesized_expression "((this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0))" (( "(") (binary_expression "(this[0x6b] != (Plugin_manager)0x0) &&\n       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)" (parenthesized_expression "(this[0x6b] != (Plugin_manager)0x0)" (( "(") (binary_expression "this[0x6b] != (Plugin_manager)0x0" (subscript_expression "this[0x6b]" (identifier "this") ([ "[") (number_literal "0x6b") (] "]")) (!= "!=") (cast_expression "(Plugin_manager)0x0" (( "(") (type_descriptor "Plugin_manager" (type_identifier "Plugin_manager")) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)" (( "(") (ERROR "iVar1 = gold::Plugin_manager::" (assignment_expression "iVar1 = gold" (identifier "iVar1") (= "=") (identifier "gold")) (: ":") (: ":") (identifier "Plugin_manager") (: ":") (: ":")) (comma_expression "get_elf_object(this,param_1), iVar1 != 0" (call_expression "get_elf_object(this,param_1)" (identifier "get_elf_object") (argument_list "(this,param_1)" (( "(") (identifier "this") (, ",") (identifier "param_1") () ")"))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      *param_2 = *(undefined4 *)(iVar1 + 0x28);\n      return 0;\n    }" ({ "{") (expression_statement "*param_2 = *(undefined4 *)(iVar1 + 0x28);" (assignment_expression "*param_2 = *(undefined4 *)(iVar1 + 0x28)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x28)" (( "(") (binary_expression "iVar1 + 0x28" (identifier "iVar1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return 3;" (return "return") (number_literal "3") (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x7b3c" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x7b3c")) (, ",") (number_literal "0x7af") (, ",") (binary_expression "PTR_DAT_0043226c + -0x72f0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x72f0")) () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */

type_1 gold::function_1(void *handle,type_2 *count)

{
  type_3 *var_1;
  type_4 *var_3;
  int var_9;
  type_5 *puVar4;
  int var_12;
  type_6 *puVar6;
  void *handle_00;
  type_5 uVar7;
  type_2 var_20;
  type_6 *var_5;
  type_5 *puVar10;
  type_5 *var_15;
  int in_a3;
  type_5 *var_11;
  int var_14;
  int *var_21;
  type_6 *var_7;
  type_7 *var_16;
  type_7 *var_22;
  int var_10;
  type_7 *pcVar16;
  type_8 *var_18;
  int var_17;
  type_8 var_19 [20];
  type_5 *puStack_6c;
  int iStack_68;
  type_7 *pcStack_64;
  void *pvStack_60;
  type_5 uStack_5c;
  type_6 *var_8;
  type_4 *var_13;
  type_5 uStack_44;
  type_5 uStack_c;
  
  var_5 = var_4;
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) != 0) {
    var_1 = *(type_3 **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);
    if (var_1 != (type_3 *)0x0) {
      if ((var_1->in_claim_file_handler_ != false) &&
         (var_3 = type_3::var_2(var_1,handle), var_3 != (type_4 *)0x0)) {
        *count = var_3->shnum_;
        return LDPS_OK;
      }
      return LDPS_ERR;
    }
    var_5 = var_4 + -0x72f0;
    (*(type_7 *)PTR_do_gold_unreachable_004323c4)(var_4 + -0x7b3c,0x7af);
  }
  puVar10 = (type_5 *)(var_5 + -0x742c);
  puVar6 = var_6 + -0x5cec;
  var_7 = PTR_do_gold_unreachable_004323c4;
  (*(type_7 *)PTR_do_gold_unreachable_004323c4)(puVar6,0x5c);
  var_5 = var_7 + 0x2548c0;
  var_21 = *(int **)(var_7 + 0x24d2d0);
  var_15 = var_11;
  var_8 = var_5;
  if (*(int *)(*var_21 + 8) == 0) {
LAB_001e5a98:
    var_5 = var_8;
    (**(type_7 **)(var_8 + -0x7e0c))
              (*(int *)(var_8 + -0x7e1c) + -0x5cec,0x5c,
               *(int *)(var_8 + -0x7f64) + -0x742c);
LAB_001e5ab4:
    uVar7 = 0x8a6;
  }
  else {
    var_9 = *(int *)(*(int *)(*var_21 + 8) + 0x594c);
    uVar7 = 0x89d;
    if (var_9 != 0) {
      if (var_10 == 0) {
        return LDPS_OK;
      }
      if (var_11 == (type_5 *)0x0) {
        return LDPS_ERR;
      }
      var_9 = *(int *)(var_9 + 0x80);
      if (var_9 != 0) {
        puVar4 = (type_5 *)(**(type_7 **)(var_7 + 0x24ca2c))(0x18);
        var_12 = *var_21;
        *puVar4 = puVar6;
        puVar4[3] = in_a3;
        puVar4[2] = puVar10;
        puVar4[5] = uStack_c;
        puVar4[4] = 0x43a1d0;
        var_12 = *(int *)(var_12 + 8);
        var_15 = puVar10;
        var_14 = in_a3;
        if (var_12 != 0) {
          var_14 = 0;
          var_15 = var_11;
          do {
            var_13 = type_3::var_2
                                   (*(type_3 **)(var_12 + 0x594c),(void *)*var_15);
            if ((var_13 == (type_4 *)0x0) ||
               (var_14 = var_14 + 1, *(int *)&var_13->field_0x2c < 0)) {
              return LDPS_BAD_HANDLE;
            }
            uStack_44 = var_15[1];
            (**(type_7 **)(var_8 + -0x548c))(var_9,var_13,uStack_44,puVar4);
            if (var_10 == var_14) {
              return LDPS_OK;
            }
            var_12 = *(int *)(*var_21 + 8);
            var_15 = var_15 + 2;
          } while (var_12 != 0);
        }
        goto LAB_001e5a98;
      }
      goto LAB_001e5ab4;
    }
  }
  var_16 = *(type_7 **)(var_5 + -0x7e0c);
  puVar10 = (type_5 *)(*(int *)(var_5 + -0x7f64) + -0x71b8);
  pcVar16 = get_input_section_name;
  handle_00 = (void *)(*(int *)(var_5 + -0x7f64) + -0x7b3c);
  (*var_16)();
  var_22 = *(type_7 **)(var_16 + 0x24c8f4);
  puStack_6c = var_15;
  iStack_68 = var_14;
  pcStack_64 = pcVar16;
  pvStack_60 = handle_00;
  uStack_5c = uVar7;
  if (*(int *)(**(int **)(var_16 + 0x24d110) + 8) != 0) {
    var_1 = *(type_3 **)(*(int *)(**(int **)(var_16 + 0x24d110) + 8) + 0x594c);
    uVar7 = 0x7dc;
    if (var_1 != (type_3 *)0x0) {
      if (var_1->in_claim_file_handler_ == false) {
        return LDPS_ERR;
      }
      var_3 = type_3::var_2(var_1,handle_00);
      if (var_3 == (type_4 *)0x0) {
        return LDPS_BAD_HANDLE;
      }
      if ((var_3->input_file_ != (type_9 *)0x0) &&
         (var_9 = (**(type_7 **)(var_16 + 0x24d2dc))(&var_3->input_file_->file_), var_9 != 0)) {
        (*var_3->_vptr_Object[0x10])(&var_18,var_3,uStack_5c);
        uVar7 = (**(type_7 **)(var_16 + 0x250c48))(var_17 + 1);
        *puVar10 = uVar7;
        (**(type_7 **)(var_16 + 0x250cb8))(uVar7,var_18,var_17 + 1);
        if (var_18 != var_19) {
          (**(type_7 **)(var_16 + 0x24c7bc))(var_18);
        }
        return LDPS_OK;
      }
      uVar7 = 0x7e8;
    }
    (**(type_7 **)(var_16 + 0x24c8f4))
              (*(int *)(var_16 + 0x24c79c) + -0x7b3c,uVar7,*(int *)(var_16 + 0x24c79c) + -0x7240);
    return LDPS_ERR;
  }
  var_20 = 0x5c;
  var_15 = (type_5 *)(*(int *)(var_16 + 0x24c79c) + -0x742c);
  var_9 = *(int *)(var_16 + 0x24c8e4) + -0x5cec;
  (*var_22)();
  if (*(char *)(var_9 + 0x6b) == '\0') {
    if (((var_20 < (type_2)(*(int *)(var_9 + 0x14) - *(int *)(var_9 + 0x10) >> 2)) &&
        (var_21 = *(int **)(*(int *)(var_9 + 0x10) + var_20 * 4), var_21 != (int *)0x0)) &&
       (var_12 = (**(type_7 **)(*var_21 + 0x14))(), var_12 != 0)) {
      var_9 = *(int *)(var_12 + 0x1c);
      if (var_9 != 0) goto LAB_001e5c68;
      (**(type_7 **)(var_22 + 0x24c794))
                (*(int *)(var_22 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(var_22 + 0x24c63c) + -0x75b4,
                 *(type_5 *)(var_12 + 0x24));
    }
    return LDPS_BAD_HANDLE;
  }
  var_9 = *(int *)(var_9 + 0x28);
LAB_001e5c68:
  uVar7 = (**(type_7 **)(var_22 + 0x24c86c))(var_9 + 0x20);
  *var_15 = uVar7;
  return LDPS_OK;
}


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

undefined4 MASKED(void *param_1,undefined4 *param_2)

{
  Plugin_manager *this;
  int iVar1;
  undefined4 uVar2;
  
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {
    uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                      (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x742c);
    return uVar2;
  }
  this = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);
  if (this != (Plugin_manager *)0x0) {
    if ((this[0x6b] != (Plugin_manager)0x0) &&
       (iVar1 = gold::Plugin_manager::get_elf_object(this,param_1), iVar1 != 0)) {
      *param_2 = *(undefined4 *)(iVar1 + 0x28);
      return 0;
    }
    return 3;
  }
  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_DAT_0043226c + -0x7b3c,0x7af,PTR_DAT_0043226c + -0x72f0);
  return uVar2;
}

