
/* 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 __thiscall
gold::get_input_section_size(gold *this,ld_plugin_section section,uint64_t *secsize)

{
  Plugin_manager *pPVar1;
  Object *pOVar2;
  int iVar3;
  int iVar4;
  int *piVar5;
  _func_int_varargs **pp_Var6;
  int iVar7;
  ld_plugin_status lVar8;
  undefined *handle;
  void *pvVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  uint *puVar12;
  uint uVar13;
  int *in_a2;
  undefined4 *puVar14;
  int *piVar15;
  undefined4 *puVar16;
  code *in_a3;
  undefined4 *unaff_s0;
  code *unaff_s1;
  undefined *puVar17;
  code *pcVar18;
  code *pcVar19;
  code *pcVar20;
  code *pcVar21;
  undefined1 *puStack_118;
  int iStack_114;
  undefined1 auStack_110 [20];
  undefined4 *puStack_fc;
  code *pcStack_f8;
  code *pcStack_f4;
  void *pvStack_f0;
  undefined4 uStack_ec;
  code *pcStack_e0;
  Object *pOStack_d8;
  undefined4 uStack_d4;
  int iStack_9c;
  undefined4 auStack_58 [2];
  
  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {
    uVar10 = 0x5c;
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x742c);
  }
  else {
    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);
    uVar10 = 0x82d;
    if (pPVar1 != (Plugin_manager *)0x0) {
      if (pPVar1->in_claim_file_handler_ == false) {
        return LDPS_ERR;
      }
      pOVar2 = Plugin_manager::get_elf_object(pPVar1,this);
      lVar8 = LDPS_BAD_HANDLE;
      if (pOVar2 != (Object *)0x0) {
        pp_Var6 = pOVar2->_vptr_Object;
        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);
        lVar8 = LDPS_OK;
        in_a2[1] = (int)pp_Var6;
        *in_a2 = iVar3;
      }
      return lVar8;
    }
  }
  puVar14 = (undefined4 *)(PTR_s__0043226c + -0x70e0);
  handle = PTR_s__0043226c + -0x7b3c;
  puVar17 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)();
  if (*(int *)(**(int **)(puVar17 + 0x24d680) + 8) == 0) {
    uVar11 = 0x5c;
    (**(code **)(puVar17 + 0x24ce64))
              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c);
  }
  else {
    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);
    uVar11 = 0x816;
    if (pPVar1 != (Plugin_manager *)0x0) {
      if (pPVar1->in_claim_file_handler_ == false) {
        return LDPS_ERR;
      }
      pOVar2 = Plugin_manager::get_elf_object(pPVar1,handle);
      if (pOVar2 == (Object *)0x0) {
        lVar8 = LDPS_BAD_HANDLE;
      }
      else {
        pp_Var6 = pOVar2->_vptr_Object;
        (*pp_Var6[0x17])(pOVar2,uVar10);
        lVar8 = LDPS_OK;
        *puVar14 = pp_Var6;
      }
      return lVar8;
    }
  }
  pcVar18 = *(code **)(puVar17 + 0x24ce64);
  puVar14 = (undefined4 *)(*(int *)(puVar17 + 0x24cd0c) + -0x713c);
  pvVar9 = (void *)(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c);
  (*pcVar18)();
  pcVar19 = *(code **)(pcVar18 + 0x24cd88);
  if (*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) != 0) {
    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c);
    uVar10 = 0x7f9;
    if (pPVar1 != (Plugin_manager *)0x0) {
      if (pPVar1->in_claim_file_handler_ == false) {
        return LDPS_ERR;
      }
      pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9);
      if (pOVar2 == (Object *)0x0) {
        return LDPS_BAD_HANDLE;
      }
      if ((pOVar2->input_file_ != (Input_file *)0x0) &&
         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {
        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);
        *puVar14 = uVar10;
        *(undefined4 *)in_a3 = auStack_58[0];
        return LDPS_OK;
      }
      uVar10 = 0x805;
    }
    (**(code **)(pcVar18 + 0x24cd88))
              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)
    ;
    return LDPS_ERR;
  }
  uVar10 = 0x5c;
  piVar15 = (int *)(*(int *)(pcVar18 + 0x24cc30) + -0x742c);
  pvVar9 = (void *)(*(int *)(pcVar18 + 0x24cd78) + -0x5cec);
  (*pcVar19)();
  if (*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) == 0) {
    puVar12 = (uint *)&DAT_0000005c;
    (**(code **)(pcVar19 + 0x24cc54))
              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c);
  }
  else {
    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);
    puVar12 = (uint *)&DAT_000007c5;
    if (pPVar1 != (Plugin_manager *)0x0) {
      if (pPVar1->in_claim_file_handler_ == false) {
        return LDPS_ERR;
      }
      pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9);
      if (pOVar2 == (Object *)0x0) {
        lVar8 = LDPS_BAD_HANDLE;
      }
      else {
        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);
        lVar8 = LDPS_OK;
        *piVar15 = iVar3;
      }
      return lVar8;
    }
  }
  pcVar18 = *(code **)(pcVar19 + 0x24cc54);
  pcVar21 = get_input_section_count;
  pvVar9 = (void *)(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c);
  (*pcVar18)();
  iVar3 = *(int *)(pcVar18 + 0x24ca18);
  if (*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) != 0) {
    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c);
    if (pPVar1 != (Plugin_manager *)0x0) {
      if ((pPVar1->in_claim_file_handler_ != false) &&
         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0)) {
        *puVar12 = pOVar2->shnum_;
        return LDPS_OK;
      }
      return LDPS_ERR;
    }
    iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0;
    (**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af);
  }
  pcVar20 = *(code **)(pcVar18 + 0x24cb70);
  puVar16 = (undefined4 *)(iVar3 + -0x742c);
  iVar3 = *(int *)(pcVar18 + 0x24cb60) + -0x5cec;
  (*pcVar20)(iVar3,0x5c);
  pcVar19 = pcVar20 + 0x2548c0;
  piVar15 = *(int **)(pcVar20 + 0x24d2d0);
  puVar14 = unaff_s0;
  pcStack_e0 = pcVar19;
  if (*(int *)(*piVar15 + 8) == 0) {
LAB_001e5a98:
    pcVar19 = pcStack_e0;
    (**(code **)(pcStack_e0 + -0x7e0c))
              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,
               *(int *)(pcStack_e0 + -0x7f64) + -0x742c);
LAB_001e5ab4:
    uVar10 = 0x8a6;
  }
  else {
    iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);
    uVar10 = 0x89d;
    if (iVar4 != 0) {
      if (pcVar21 == (code *)0x0) {
        return LDPS_OK;
      }
      if (unaff_s0 == (undefined4 *)0x0) {
        return LDPS_ERR;
      }
      iVar4 = *(int *)(iVar4 + 0x80);
      if (iVar4 != 0) {
        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);
        iVar7 = *piVar15;
        *piVar5 = iVar3;
        piVar5[3] = (int)in_a3;
        piVar5[2] = (int)puVar16;
        piVar5[5] = iStack_9c;
        piVar5[4] = (int)(pcVar18 + 0x25497c);
        iVar3 = *(int *)(iVar7 + 8);
        puVar14 = puVar16;
        unaff_s1 = in_a3;
        if (iVar3 != 0) {
          unaff_s1 = (code *)0x0;
          puVar14 = unaff_s0;
          do {
            pOStack_d8 = Plugin_manager::get_elf_object
                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);
            if ((pOStack_d8 == (Object *)0x0) ||
               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {
              return LDPS_BAD_HANDLE;
            }
            uStack_d4 = puVar14[1];
            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);
            if (pcVar21 == unaff_s1) {
              return LDPS_OK;
            }
            iVar3 = *(int *)(*piVar15 + 8);
            puVar14 = puVar14 + 2;
          } while (iVar3 != 0);
        }
        goto LAB_001e5a98;
      }
      goto LAB_001e5ab4;
    }
  }
  pcVar18 = *(code **)(pcVar19 + -0x7e0c);
  puVar16 = (undefined4 *)(*(int *)(pcVar19 + -0x7f64) + -0x71b8);
  pcVar21 = get_input_section_name;
  pvVar9 = (void *)(*(int *)(pcVar19 + -0x7f64) + -0x7b3c);
  (*pcVar18)();
  pcVar19 = *(code **)(pcVar18 + 0x24c8f4);
  puStack_fc = puVar14;
  pcStack_f8 = unaff_s1;
  pcStack_f4 = pcVar21;
  pvStack_f0 = pvVar9;
  uStack_ec = uVar10;
  if (*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) != 0) {
    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c);
    uVar10 = 0x7dc;
    if (pPVar1 != (Plugin_manager *)0x0) {
      if (pPVar1->in_claim_file_handler_ == false) {
        return LDPS_ERR;
      }
      pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9);
      if (pOVar2 == (Object *)0x0) {
        return LDPS_BAD_HANDLE;
      }
      if ((pOVar2->input_file_ != (Input_file *)0x0) &&
         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {
        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);
        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);
        *puVar16 = uVar10;
        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);
        if (puStack_118 != auStack_110) {
          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);
        }
        return LDPS_OK;
      }
      uVar10 = 0x7e8;
    }
    (**(code **)(pcVar18 + 0x24c8f4))
              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)
    ;
    return LDPS_ERR;
  }
  uVar13 = 0x5c;
  puVar14 = (undefined4 *)(*(int *)(pcVar18 + 0x24c79c) + -0x742c);
  iVar3 = *(int *)(pcVar18 + 0x24c8e4) + -0x5cec;
  (*pcVar19)();
  if (*(char *)(iVar3 + 0x6b) == '\0') {
    if (((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&
        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&
       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)) {
      iVar3 = *(int *)(iVar4 + 0x1c);
      if (iVar3 != 0) goto LAB_001e5c68;
      (**(code **)(pcVar19 + 0x24c794))
                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,
                 *(undefined4 *)(iVar4 + 0x24));
    }
    return LDPS_BAD_HANDLE;
  }
  iVar3 = *(int *)(iVar3 + 0x28);
LAB_001e5c68:
  uVar10 = (**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20);
  *puVar14 = uVar10;
  return LDPS_OK;
}



undefined4 FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)

{
  Plugin_manager *this;
  int *piVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  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) {
      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);
      uVar2 = 2;
      if (piVar1 != (int *)0x0) {
        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);
        uVar2 = 0;
        *param_3 = uVar3;
      }
      return uVar2;
    }
    return 3;
  }
  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);
  return uVar2;
}


lui gp,0x25
addiu gp,gp,0x4d54
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)
sw a0,0x20(sp)
sw a1,0x24(sp)
lw v0,0x8(v0)
beq v0,zero,0x001e5530
_lw t9,-0x7e0c(gp)
lw v0,0x594c(v0)
beq v0,zero,0x001e5548
_li a1,0x82d
lbu v1,0x6b(v0)
beq v1,zero,0x001e5518
_lw t9,-0x5490(gp)
or a1,a0,zero
or a0,v0,zero
bal 0x001e5404
_or s0,a2,zero
beq v0,zero,0x001e5504
_li a0,0x2
lw v1,0x0(v0)
or a0,v0,zero
lw t9,0x3c(v1)
jalr t9
_lw a1,0x24(sp)
or a0,zero,zero
sw v1,0x4(s0)
sw v0,0x0(s0)
lw ra,0x1c(sp)
or v0,a0,zero
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
lw ra,0x1c(sp)
li a0,0x3
lw s0,0x18(sp)
addiu sp,sp,0x20
jr ra
_or v0,a0,zero
lw a2,-0x7f64(gp)
li a1,0x5c
lw a0,-0x7e1c(gp)
addiu a2,a2,-0x742c
jalr t9
_addiu a0,a0,-0x5cec
lw a2,-0x7f64(gp)
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x70e0
jalr t9
_addiu a0,a0,-0x7b3c
(translation_unit "undefined4 FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)\n\n{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)\n\n{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}" type_identifier (function_declarator "FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)" identifier (parameter_list "(void *param_1,undefined4 param_2,undefined8 *param_3)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}" { (declaration "Plugin_manager *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" 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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }" { (if_statement "if (this[0x6b] != (Plugin_manager)0x0) {\n      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }" if (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)) )) (compound_statement "{\n      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }" { (ERROR "piVar1 = (int *)gold::" (assignment_expression "piVar1 = (int *)gold" identifier = (cast_expression "(int *)gold" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "Plugin_manager::get_elf_object(this,param_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_elf_object(this,param_1);" (call_expression "get_elf_object(this,param_1)" identifier (argument_list "(this,param_1)" ( identifier , identifier ))) ;)) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }" { (expression_statement "uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);" (assignment_expression "uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2)" identifier = (call_expression "(**(code **)(*piVar1 + 0x3c))(piVar1,param_2)" (parenthesized_expression "(**(code **)(*piVar1 + 0x3c))" ( (pointer_expression "**(code **)(*piVar1 + 0x3c)" * (pointer_expression "*(code **)(*piVar1 + 0x3c)" * (cast_expression "(code **)(*piVar1 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x3c)" ( (binary_expression "*piVar1 + 0x3c" (pointer_expression "*piVar1" * identifier) + number_literal) ))))) )) (argument_list "(piVar1,param_2)" ( identifier , identifier )))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*param_3 = uVar3;" (assignment_expression "*param_3 = uVar3" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (return_statement "return uVar2;" return identifier ;) })) (return_statement "return 3;" return number_literal ;) })) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0)" (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,0x82d,PTR_DAT_0043226c + -0x70e0)" ( (binary_expression "PTR_DAT_0043226c + -0x7b3c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x70e0" 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 __thiscall\ngold::get_input_section_size(gold *this,ld_plugin_section section,uint64_t *secsize)\n\n{\n  Plugin_manager *pPVar1;\n  Object *pOVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  _func_int_varargs **pp_Var6;\n  int iVar7;\n  ld_plugin_status lVar8;\n  undefined *handle;\n  void *pvVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  uint *puVar12;\n  uint uVar13;\n  int *in_a2;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  code *in_a3;\n  undefined4 *unaff_s0;\n  code *unaff_s1;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcVar21;\n  undefined1 *puStack_118;\n  int iStack_114;\n  undefined1 auStack_110 [20];\n  undefined4 *puStack_fc;\n  code *pcStack_f8;\n  code *pcStack_f4;\n  void *pvStack_f0;\n  undefined4 uStack_ec;\n  code *pcStack_e0;\n  Object *pOStack_d8;\n  undefined4 uStack_d4;\n  int iStack_9c;\n  undefined4 auStack_58 [2];\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar10 = 0x5c;\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    uVar10 = 0x82d;\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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\n    }\n  }\n  puVar14 = (undefined4 *)(PTR_s__0043226c + -0x70e0);\n  handle = PTR_s__0043226c + -0x7b3c;\n  puVar17 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  if (*(int *)(**(int **)(puVar17 + 0x24d680) + 8) == 0) {\n    uVar11 = 0x5c;\n    (**(code **)(puVar17 + 0x24ce64))\n              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);\n    uVar11 = 0x816;\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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\n    }\n  }\n  pcVar18 = *(code **)(puVar17 + 0x24ce64);\n  puVar14 = (undefined4 *)(*(int *)(puVar17 + 0x24cd0c) + -0x713c);\n  pvVar9 = (void *)(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c);\n  (*pcVar18)();\n  pcVar19 = *(code **)(pcVar18 + 0x24cd88);\n  if (*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c);\n    uVar10 = 0x7f9;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }\n      uVar10 = 0x805;\n    }\n    (**(code **)(pcVar18 + 0x24cd88))\n              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)\n    ;\n    return LDPS_ERR;\n  }\n  uVar10 = 0x5c;\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x24cc30) + -0x742c);\n  pvVar9 = (void *)(*(int *)(pcVar18 + 0x24cd78) + -0x5cec);\n  (*pcVar19)();\n  if (*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) == 0) {\n    puVar12 = (uint *)&DAT_0000005c;\n    (**(code **)(pcVar19 + 0x24cc54))\n              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);\n    puVar12 = (uint *)&DAT_000007c5;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\n    }\n  }\n  pcVar18 = *(code **)(pcVar19 + 0x24cc54);\n  pcVar21 = get_input_section_count;\n  pvVar9 = (void *)(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c);\n  (*pcVar18)();\n  iVar3 = *(int *)(pcVar18 + 0x24ca18);\n  if (*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0;\n    (**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af);\n  }\n  pcVar20 = *(code **)(pcVar18 + 0x24cb70);\n  puVar16 = (undefined4 *)(iVar3 + -0x742c);\n  iVar3 = *(int *)(pcVar18 + 0x24cb60) + -0x5cec;\n  (*pcVar20)(iVar3,0x5c);\n  pcVar19 = pcVar20 + 0x2548c0;\n  piVar15 = *(int **)(pcVar20 + 0x24d2d0);\n  puVar14 = unaff_s0;\n  pcStack_e0 = pcVar19;\n  if (*(int *)(*piVar15 + 8) == 0) {\nLAB_001e5a98:\n    pcVar19 = pcStack_e0;\n    (**(code **)(pcStack_e0 + -0x7e0c))\n              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar10 = 0x8a6;\n  }\n  else {\n    iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);\n    uVar10 = 0x89d;\n    if (iVar4 != 0) {\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }\n  pcVar18 = *(code **)(pcVar19 + -0x7e0c);\n  puVar16 = (undefined4 *)(*(int *)(pcVar19 + -0x7f64) + -0x71b8);\n  pcVar21 = get_input_section_name;\n  pvVar9 = (void *)(*(int *)(pcVar19 + -0x7f64) + -0x7b3c);\n  (*pcVar18)();\n  pcVar19 = *(code **)(pcVar18 + 0x24c8f4);\n  puStack_fc = puVar14;\n  pcStack_f8 = unaff_s1;\n  pcStack_f4 = pcVar21;\n  pvStack_f0 = pvVar9;\n  uStack_ec = uVar10;\n  if (*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c);\n    uVar10 = 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }\n      uVar10 = 0x7e8;\n    }\n    (**(code **)(pcVar18 + 0x24c8f4))\n              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)\n    ;\n    return LDPS_ERR;\n  }\n  uVar13 = 0x5c;\n  puVar14 = (undefined4 *)(*(int *)(pcVar18 + 0x24c79c) + -0x742c);\n  iVar3 = *(int *)(pcVar18 + 0x24c8e4) + -0x5cec;\n  (*pcVar19)();\n  if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)) {\n      iVar3 = *(int *)(iVar4 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }\n  iVar3 = *(int *)(iVar3 + 0x28);\nLAB_001e5c68:\n  uVar10 = (**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20);\n  *puVar14 = uVar10;\n  return LDPS_OK;\n}\n\n" comment comment comment comment comment comment (function_definition "ld_plugin_status __thiscall\ngold::get_input_section_size(gold *this,ld_plugin_section section,uint64_t *secsize)\n\n{\n  Plugin_manager *pPVar1;\n  Object *pOVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  _func_int_varargs **pp_Var6;\n  int iVar7;\n  ld_plugin_status lVar8;\n  undefined *handle;\n  void *pvVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  uint *puVar12;\n  uint uVar13;\n  int *in_a2;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  code *in_a3;\n  undefined4 *unaff_s0;\n  code *unaff_s1;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcVar21;\n  undefined1 *puStack_118;\n  int iStack_114;\n  undefined1 auStack_110 [20];\n  undefined4 *puStack_fc;\n  code *pcStack_f8;\n  code *pcStack_f4;\n  void *pvStack_f0;\n  undefined4 uStack_ec;\n  code *pcStack_e0;\n  Object *pOStack_d8;\n  undefined4 uStack_d4;\n  int iStack_9c;\n  undefined4 auStack_58 [2];\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar10 = 0x5c;\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    uVar10 = 0x82d;\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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\n    }\n  }\n  puVar14 = (undefined4 *)(PTR_s__0043226c + -0x70e0);\n  handle = PTR_s__0043226c + -0x7b3c;\n  puVar17 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  if (*(int *)(**(int **)(puVar17 + 0x24d680) + 8) == 0) {\n    uVar11 = 0x5c;\n    (**(code **)(puVar17 + 0x24ce64))\n              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);\n    uVar11 = 0x816;\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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\n    }\n  }\n  pcVar18 = *(code **)(puVar17 + 0x24ce64);\n  puVar14 = (undefined4 *)(*(int *)(puVar17 + 0x24cd0c) + -0x713c);\n  pvVar9 = (void *)(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c);\n  (*pcVar18)();\n  pcVar19 = *(code **)(pcVar18 + 0x24cd88);\n  if (*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c);\n    uVar10 = 0x7f9;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }\n      uVar10 = 0x805;\n    }\n    (**(code **)(pcVar18 + 0x24cd88))\n              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)\n    ;\n    return LDPS_ERR;\n  }\n  uVar10 = 0x5c;\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x24cc30) + -0x742c);\n  pvVar9 = (void *)(*(int *)(pcVar18 + 0x24cd78) + -0x5cec);\n  (*pcVar19)();\n  if (*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) == 0) {\n    puVar12 = (uint *)&DAT_0000005c;\n    (**(code **)(pcVar19 + 0x24cc54))\n              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);\n    puVar12 = (uint *)&DAT_000007c5;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\n    }\n  }\n  pcVar18 = *(code **)(pcVar19 + 0x24cc54);\n  pcVar21 = get_input_section_count;\n  pvVar9 = (void *)(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c);\n  (*pcVar18)();\n  iVar3 = *(int *)(pcVar18 + 0x24ca18);\n  if (*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0;\n    (**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af);\n  }\n  pcVar20 = *(code **)(pcVar18 + 0x24cb70);\n  puVar16 = (undefined4 *)(iVar3 + -0x742c);\n  iVar3 = *(int *)(pcVar18 + 0x24cb60) + -0x5cec;\n  (*pcVar20)(iVar3,0x5c);\n  pcVar19 = pcVar20 + 0x2548c0;\n  piVar15 = *(int **)(pcVar20 + 0x24d2d0);\n  puVar14 = unaff_s0;\n  pcStack_e0 = pcVar19;\n  if (*(int *)(*piVar15 + 8) == 0) {\nLAB_001e5a98:\n    pcVar19 = pcStack_e0;\n    (**(code **)(pcStack_e0 + -0x7e0c))\n              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar10 = 0x8a6;\n  }\n  else {\n    iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);\n    uVar10 = 0x89d;\n    if (iVar4 != 0) {\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }\n  pcVar18 = *(code **)(pcVar19 + -0x7e0c);\n  puVar16 = (undefined4 *)(*(int *)(pcVar19 + -0x7f64) + -0x71b8);\n  pcVar21 = get_input_section_name;\n  pvVar9 = (void *)(*(int *)(pcVar19 + -0x7f64) + -0x7b3c);\n  (*pcVar18)();\n  pcVar19 = *(code **)(pcVar18 + 0x24c8f4);\n  puStack_fc = puVar14;\n  pcStack_f8 = unaff_s1;\n  pcStack_f4 = pcVar21;\n  pvStack_f0 = pvVar9;\n  uStack_ec = uVar10;\n  if (*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c);\n    uVar10 = 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }\n      uVar10 = 0x7e8;\n    }\n    (**(code **)(pcVar18 + 0x24c8f4))\n              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)\n    ;\n    return LDPS_ERR;\n  }\n  uVar13 = 0x5c;\n  puVar14 = (undefined4 *)(*(int *)(pcVar18 + 0x24c79c) + -0x742c);\n  iVar3 = *(int *)(pcVar18 + 0x24c8e4) + -0x5cec;\n  (*pcVar19)();\n  if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)) {\n      iVar3 = *(int *)(iVar4 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }\n  iVar3 = *(int *)(iVar3 + 0x28);\nLAB_001e5c68:\n  uVar10 = (**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20);\n  *puVar14 = uVar10;\n  return LDPS_OK;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) (function_declarator "get_input_section_size(gold *this,ld_plugin_section section,uint64_t *secsize)" identifier (parameter_list "(gold *this,ld_plugin_section section,uint64_t *secsize)" ( (parameter_declaration "gold *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "ld_plugin_section section" type_identifier identifier) , (parameter_declaration "uint64_t *secsize" primitive_type (pointer_declarator "*secsize" * identifier)) ))) (compound_statement "{\n  Plugin_manager *pPVar1;\n  Object *pOVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  _func_int_varargs **pp_Var6;\n  int iVar7;\n  ld_plugin_status lVar8;\n  undefined *handle;\n  void *pvVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  uint *puVar12;\n  uint uVar13;\n  int *in_a2;\n  undefined4 *puVar14;\n  int *piVar15;\n  undefined4 *puVar16;\n  code *in_a3;\n  undefined4 *unaff_s0;\n  code *unaff_s1;\n  undefined *puVar17;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcVar21;\n  undefined1 *puStack_118;\n  int iStack_114;\n  undefined1 auStack_110 [20];\n  undefined4 *puStack_fc;\n  code *pcStack_f8;\n  code *pcStack_f4;\n  void *pvStack_f0;\n  undefined4 uStack_ec;\n  code *pcStack_e0;\n  Object *pOStack_d8;\n  undefined4 uStack_d4;\n  int iStack_9c;\n  undefined4 auStack_58 [2];\n  \n  if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar10 = 0x5c;\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    uVar10 = 0x82d;\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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\n    }\n  }\n  puVar14 = (undefined4 *)(PTR_s__0043226c + -0x70e0);\n  handle = PTR_s__0043226c + -0x7b3c;\n  puVar17 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)();\n  if (*(int *)(**(int **)(puVar17 + 0x24d680) + 8) == 0) {\n    uVar11 = 0x5c;\n    (**(code **)(puVar17 + 0x24ce64))\n              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);\n    uVar11 = 0x816;\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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\n    }\n  }\n  pcVar18 = *(code **)(puVar17 + 0x24ce64);\n  puVar14 = (undefined4 *)(*(int *)(puVar17 + 0x24cd0c) + -0x713c);\n  pvVar9 = (void *)(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c);\n  (*pcVar18)();\n  pcVar19 = *(code **)(pcVar18 + 0x24cd88);\n  if (*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c);\n    uVar10 = 0x7f9;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }\n      uVar10 = 0x805;\n    }\n    (**(code **)(pcVar18 + 0x24cd88))\n              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)\n    ;\n    return LDPS_ERR;\n  }\n  uVar10 = 0x5c;\n  piVar15 = (int *)(*(int *)(pcVar18 + 0x24cc30) + -0x742c);\n  pvVar9 = (void *)(*(int *)(pcVar18 + 0x24cd78) + -0x5cec);\n  (*pcVar19)();\n  if (*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) == 0) {\n    puVar12 = (uint *)&DAT_0000005c;\n    (**(code **)(pcVar19 + 0x24cc54))\n              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);\n    puVar12 = (uint *)&DAT_000007c5;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\n    }\n  }\n  pcVar18 = *(code **)(pcVar19 + 0x24cc54);\n  pcVar21 = get_input_section_count;\n  pvVar9 = (void *)(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c);\n  (*pcVar18)();\n  iVar3 = *(int *)(pcVar18 + 0x24ca18);\n  if (*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0;\n    (**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af);\n  }\n  pcVar20 = *(code **)(pcVar18 + 0x24cb70);\n  puVar16 = (undefined4 *)(iVar3 + -0x742c);\n  iVar3 = *(int *)(pcVar18 + 0x24cb60) + -0x5cec;\n  (*pcVar20)(iVar3,0x5c);\n  pcVar19 = pcVar20 + 0x2548c0;\n  piVar15 = *(int **)(pcVar20 + 0x24d2d0);\n  puVar14 = unaff_s0;\n  pcStack_e0 = pcVar19;\n  if (*(int *)(*piVar15 + 8) == 0) {\nLAB_001e5a98:\n    pcVar19 = pcStack_e0;\n    (**(code **)(pcStack_e0 + -0x7e0c))\n              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar10 = 0x8a6;\n  }\n  else {\n    iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);\n    uVar10 = 0x89d;\n    if (iVar4 != 0) {\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }\n  pcVar18 = *(code **)(pcVar19 + -0x7e0c);\n  puVar16 = (undefined4 *)(*(int *)(pcVar19 + -0x7f64) + -0x71b8);\n  pcVar21 = get_input_section_name;\n  pvVar9 = (void *)(*(int *)(pcVar19 + -0x7f64) + -0x7b3c);\n  (*pcVar18)();\n  pcVar19 = *(code **)(pcVar18 + 0x24c8f4);\n  puStack_fc = puVar14;\n  pcStack_f8 = unaff_s1;\n  pcStack_f4 = pcVar21;\n  pvStack_f0 = pvVar9;\n  uStack_ec = uVar10;\n  if (*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c);\n    uVar10 = 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }\n      uVar10 = 0x7e8;\n    }\n    (**(code **)(pcVar18 + 0x24c8f4))\n              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)\n    ;\n    return LDPS_ERR;\n  }\n  uVar13 = 0x5c;\n  puVar14 = (undefined4 *)(*(int *)(pcVar18 + 0x24c79c) + -0x742c);\n  iVar3 = *(int *)(pcVar18 + 0x24c8e4) + -0x5cec;\n  (*pcVar19)();\n  if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)) {\n      iVar3 = *(int *)(iVar4 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }\n  iVar3 = *(int *)(iVar3 + 0x28);\nLAB_001e5c68:\n  uVar10 = (**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20);\n  *puVar14 = uVar10;\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 "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "_func_int_varargs **pp_Var6;" type_identifier (pointer_declarator "**pp_Var6" * (pointer_declarator "*pp_Var6" * identifier)) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "ld_plugin_status lVar8;" type_identifier identifier ;) (declaration "undefined *handle;" type_identifier (pointer_declarator "*handle" * identifier) ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int *in_a2;" primitive_type (pointer_declarator "*in_a2" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "undefined4 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "code *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "undefined1 *puStack_118;" type_identifier (pointer_declarator "*puStack_118" * identifier) ;) (declaration "int iStack_114;" primitive_type identifier ;) (declaration "undefined1 auStack_110 [20];" type_identifier (array_declarator "auStack_110 [20]" identifier [ number_literal ]) ;) (declaration "undefined4 *puStack_fc;" type_identifier (pointer_declarator "*puStack_fc" * identifier) ;) (declaration "code *pcStack_f8;" type_identifier (pointer_declarator "*pcStack_f8" * identifier) ;) (declaration "code *pcStack_f4;" type_identifier (pointer_declarator "*pcStack_f4" * identifier) ;) (declaration "void *pvStack_f0;" primitive_type (pointer_declarator "*pvStack_f0" * identifier) ;) (declaration "undefined4 uStack_ec;" type_identifier identifier ;) (declaration "code *pcStack_e0;" type_identifier (pointer_declarator "*pcStack_e0" * identifier) ;) (declaration "Object *pOStack_d8;" type_identifier (pointer_declarator "*pOStack_d8" * identifier) ;) (declaration "undefined4 uStack_d4;" type_identifier identifier ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "undefined4 auStack_58 [2];" type_identifier (array_declarator "auStack_58 [2]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_00432be0 + 8) == 0) {\n    uVar10 = 0x5c;\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    uVar10 = 0x82d;\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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\n    }\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    uVar10 = 0x5c;\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x742c);\n  }" { (expression_statement "uVar10 = 0x5c;" (assignment_expression "uVar10 = 0x5c" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__0043226c + -0x742c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_s__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_s__0043226c + -0x742c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + -0x742c" identifier + number_literal) ))) ;) }) (else_clause "else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    uVar10 = 0x82d;\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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\n    }\n  }" else (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(*(int *)PTR_parameters_00432be0 + 8) + 0x594c);\n    uVar10 = 0x82d;\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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\n    }\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) ))))) ;) (expression_statement "uVar10 = 0x82d;" (assignment_expression "uVar10 = 0x82d" 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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\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,this);\n      lVar8 = LDPS_BAD_HANDLE;\n      if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }\n      return lVar8;\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,this);" (call_expression "get_elf_object(pPVar1,this)" identifier (argument_list "(pPVar1,this)" ( identifier , identifier ))) ;) (expression_statement "lVar8 = LDPS_BAD_HANDLE;" (assignment_expression "lVar8 = LDPS_BAD_HANDLE" identifier = identifier) ;) (if_statement "if (pOVar2 != (Object *)0x0) {\n        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\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        pp_Var6 = pOVar2->_vptr_Object;\n        iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);\n        lVar8 = LDPS_OK;\n        in_a2[1] = (int)pp_Var6;\n        *in_a2 = iVar3;\n      }" { (expression_statement "pp_Var6 = pOVar2->_vptr_Object;" (assignment_expression "pp_Var6 = pOVar2->_vptr_Object" identifier = (field_expression "pOVar2->_vptr_Object" identifier -> field_identifier)) ;) (expression_statement "iVar3 = (*pp_Var6[0xf])(pOVar2,secsize);" (assignment_expression "iVar3 = (*pp_Var6[0xf])(pOVar2,secsize)" identifier = (call_expression "(*pp_Var6[0xf])(pOVar2,secsize)" (parenthesized_expression "(*pp_Var6[0xf])" ( (pointer_expression "*pp_Var6[0xf]" * (subscript_expression "pp_Var6[0xf]" identifier [ number_literal ])) )) (argument_list "(pOVar2,secsize)" ( identifier , identifier )))) ;) (expression_statement "lVar8 = LDPS_OK;" (assignment_expression "lVar8 = LDPS_OK" identifier = identifier) ;) (expression_statement "in_a2[1] = (int)pp_Var6;" (assignment_expression "in_a2[1] = (int)pp_Var6" (subscript_expression "in_a2[1]" identifier [ number_literal ]) = (cast_expression "(int)pp_Var6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*in_a2 = iVar3;" (assignment_expression "*in_a2 = iVar3" (pointer_expression "*in_a2" * identifier) = identifier) ;) })) (return_statement "return lVar8;" return identifier ;) })) }))) (expression_statement "puVar14 = (undefined4 *)(PTR_s__0043226c + -0x70e0);" (assignment_expression "puVar14 = (undefined4 *)(PTR_s__0043226c + -0x70e0)" identifier = (cast_expression "(undefined4 *)(PTR_s__0043226c + -0x70e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__0043226c + -0x70e0)" ( (binary_expression "PTR_s__0043226c + -0x70e0" identifier + number_literal) )))) ;) (expression_statement "handle = PTR_s__0043226c + -0x7b3c;" (assignment_expression "handle = PTR_s__0043226c + -0x7b3c" identifier = (binary_expression "PTR_s__0043226c + -0x7b3c" identifier + number_literal)) ;) (expression_statement "puVar17 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar17 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)()" (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 "()" ( ))) ;) (if_statement "if (*(int *)(**(int **)(puVar17 + 0x24d680) + 8) == 0) {\n    uVar11 = 0x5c;\n    (**(code **)(puVar17 + 0x24ce64))\n              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);\n    uVar11 = 0x816;\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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\n    }\n  }" if (parenthesized_expression "(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) == 0)" ( (binary_expression "*(int *)(**(int **)(puVar17 + 0x24d680) + 8) == 0" (pointer_expression "*(int *)(**(int **)(puVar17 + 0x24d680) + 8)" * (cast_expression "(int *)(**(int **)(puVar17 + 0x24d680) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar17 + 0x24d680) + 8)" ( (binary_expression "**(int **)(puVar17 + 0x24d680) + 8" (pointer_expression "**(int **)(puVar17 + 0x24d680)" * (pointer_expression "*(int **)(puVar17 + 0x24d680)" * (cast_expression "(int **)(puVar17 + 0x24d680)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x24d680)" ( (binary_expression "puVar17 + 0x24d680" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar11 = 0x5c;\n    (**(code **)(puVar17 + 0x24ce64))\n              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c);\n  }" { (expression_statement "uVar11 = 0x5c;" (assignment_expression "uVar11 = 0x5c" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar17 + 0x24ce64))\n              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c);" (call_expression "(**(code **)(puVar17 + 0x24ce64))\n              (*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c)" (parenthesized_expression "(**(code **)(puVar17 + 0x24ce64))" ( (pointer_expression "**(code **)(puVar17 + 0x24ce64)" * (pointer_expression "*(code **)(puVar17 + 0x24ce64)" * (cast_expression "(code **)(puVar17 + 0x24ce64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x24ce64)" ( (binary_expression "puVar17 + 0x24ce64" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar17 + 0x24ce54) + -0x5cec,0x5c,*(int *)(puVar17 + 0x24cd0c) + -0x742c)" ( (binary_expression "*(int *)(puVar17 + 0x24ce54) + -0x5cec" (pointer_expression "*(int *)(puVar17 + 0x24ce54)" * (cast_expression "(int *)(puVar17 + 0x24ce54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24ce54)" ( (binary_expression "puVar17 + 0x24ce54" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar17 + 0x24cd0c) + -0x742c" (pointer_expression "*(int *)(puVar17 + 0x24cd0c)" * (cast_expression "(int *)(puVar17 + 0x24cd0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24cd0c)" ( (binary_expression "puVar17 + 0x24cd0c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);\n    uVar11 = 0x816;\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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\n    }\n  }" else (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);\n    uVar11 = 0x816;\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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\n    }\n  }" { (expression_statement "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c);" (assignment_expression "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c)" ( (binary_expression "*(int *)(**(int **)(puVar17 + 0x24d680) + 8) + 0x594c" (pointer_expression "*(int *)(**(int **)(puVar17 + 0x24d680) + 8)" * (cast_expression "(int *)(**(int **)(puVar17 + 0x24d680) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar17 + 0x24d680) + 8)" ( (binary_expression "**(int **)(puVar17 + 0x24d680) + 8" (pointer_expression "**(int **)(puVar17 + 0x24d680)" * (pointer_expression "*(int **)(puVar17 + 0x24d680)" * (cast_expression "(int **)(puVar17 + 0x24d680)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x24d680)" ( (binary_expression "puVar17 + 0x24d680" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar11 = 0x816;" (assignment_expression "uVar11 = 0x816" 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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\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);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }\n      return lVar8;\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);" (call_expression "get_elf_object(pPVar1,handle)" identifier (argument_list "(pPVar1,handle)" ( identifier , identifier ))) ;) (if_statement "if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\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        lVar8 = LDPS_BAD_HANDLE;\n      }" { (expression_statement "lVar8 = LDPS_BAD_HANDLE;" (assignment_expression "lVar8 = LDPS_BAD_HANDLE" identifier = identifier) ;) }) (else_clause "else {\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }" else (compound_statement "{\n        pp_Var6 = pOVar2->_vptr_Object;\n        (*pp_Var6[0x17])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *puVar14 = pp_Var6;\n      }" { (expression_statement "pp_Var6 = pOVar2->_vptr_Object;" (assignment_expression "pp_Var6 = pOVar2->_vptr_Object" identifier = (field_expression "pOVar2->_vptr_Object" identifier -> field_identifier)) ;) (expression_statement "(*pp_Var6[0x17])(pOVar2,uVar10);" (call_expression "(*pp_Var6[0x17])(pOVar2,uVar10)" (parenthesized_expression "(*pp_Var6[0x17])" ( (pointer_expression "*pp_Var6[0x17]" * (subscript_expression "pp_Var6[0x17]" identifier [ number_literal ])) )) (argument_list "(pOVar2,uVar10)" ( identifier , identifier ))) ;) (expression_statement "lVar8 = LDPS_OK;" (assignment_expression "lVar8 = LDPS_OK" identifier = identifier) ;) (expression_statement "*puVar14 = pp_Var6;" (assignment_expression "*puVar14 = pp_Var6" (pointer_expression "*puVar14" * identifier) = identifier) ;) }))) (return_statement "return lVar8;" return identifier ;) })) }))) (expression_statement "pcVar18 = *(code **)(puVar17 + 0x24ce64);" (assignment_expression "pcVar18 = *(code **)(puVar17 + 0x24ce64)" identifier = (pointer_expression "*(code **)(puVar17 + 0x24ce64)" * (cast_expression "(code **)(puVar17 + 0x24ce64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x24ce64)" ( (binary_expression "puVar17 + 0x24ce64" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = (undefined4 *)(*(int *)(puVar17 + 0x24cd0c) + -0x713c);" (assignment_expression "puVar14 = (undefined4 *)(*(int *)(puVar17 + 0x24cd0c) + -0x713c)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar17 + 0x24cd0c) + -0x713c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x24cd0c) + -0x713c)" ( (binary_expression "*(int *)(puVar17 + 0x24cd0c) + -0x713c" (pointer_expression "*(int *)(puVar17 + 0x24cd0c)" * (cast_expression "(int *)(puVar17 + 0x24cd0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24cd0c)" ( (binary_expression "puVar17 + 0x24cd0c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pvVar9 = (void *)(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c);" (assignment_expression "pvVar9 = (void *)(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c)" identifier = (cast_expression "(void *)(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + 0x24cd0c) + -0x7b3c)" ( (binary_expression "*(int *)(puVar17 + 0x24cd0c) + -0x7b3c" (pointer_expression "*(int *)(puVar17 + 0x24cd0c)" * (cast_expression "(int *)(puVar17 + 0x24cd0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x24cd0c)" ( (binary_expression "puVar17 + 0x24cd0c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar19 = *(code **)(pcVar18 + 0x24cd88);" (assignment_expression "pcVar19 = *(code **)(pcVar18 + 0x24cd88)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x24cd88)" * (cast_expression "(code **)(pcVar18 + 0x24cd88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24cd88)" ( (binary_expression "pcVar18 + 0x24cd88" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c);\n    uVar10 = 0x7f9;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }\n      uVar10 = 0x805;\n    }\n    (**(code **)(pcVar18 + 0x24cd88))\n              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)\n    ;\n    return LDPS_ERR;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) != 0)" ( (binary_expression "*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) != 0" (pointer_expression "*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8)" * (cast_expression "(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar18 + 0x24d5a4) + 8)" ( (binary_expression "**(int **)(pcVar18 + 0x24d5a4) + 8" (pointer_expression "**(int **)(pcVar18 + 0x24d5a4)" * (pointer_expression "*(int **)(pcVar18 + 0x24d5a4)" * (cast_expression "(int **)(pcVar18 + 0x24d5a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d5a4)" ( (binary_expression "pcVar18 + 0x24d5a4" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c);\n    uVar10 = 0x7f9;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }\n      uVar10 = 0x805;\n    }\n    (**(code **)(pcVar18 + 0x24cd88))\n              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)\n    ;\n    return LDPS_ERR;\n  }" { (expression_statement "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c);" (assignment_expression "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c)" ( (binary_expression "*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8) + 0x594c" (pointer_expression "*(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8)" * (cast_expression "(int *)(**(int **)(pcVar18 + 0x24d5a4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar18 + 0x24d5a4) + 8)" ( (binary_expression "**(int **)(pcVar18 + 0x24d5a4) + 8" (pointer_expression "**(int **)(pcVar18 + 0x24d5a4)" * (pointer_expression "*(int **)(pcVar18 + 0x24d5a4)" * (cast_expression "(int **)(pcVar18 + 0x24d5a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d5a4)" ( (binary_expression "pcVar18 + 0x24d5a4" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar10 = 0x7f9;" (assignment_expression "uVar10 = 0x7f9" 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }\n      uVar10 = 0x805;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }\n      uVar10 = 0x805;\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,pvVar9);" (call_expression "get_elf_object(pPVar1,pvVar9)" identifier (argument_list "(pPVar1,pvVar9)" ( 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 **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }" if (parenthesized_expression "((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0))" ( (binary_expression "(pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d770))(&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 **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0)" ( (comma_expression "iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_)" identifier = (call_expression "(**(code **)(pcVar18 + 0x24d770))(&pOVar2->input_file_->file_)" (parenthesized_expression "(**(code **)(pcVar18 + 0x24d770))" ( (pointer_expression "**(code **)(pcVar18 + 0x24d770)" * (pointer_expression "*(code **)(pcVar18 + 0x24d770)" * (cast_expression "(code **)(pcVar18 + 0x24d770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d770)" ( (binary_expression "pcVar18 + 0x24d770" 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        uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);\n        *puVar14 = uVar10;\n        *(undefined4 *)in_a3 = auStack_58[0];\n        return LDPS_OK;\n      }" { (expression_statement "uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0);" (assignment_expression "uVar10 = (**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0)" identifier = (call_expression "(**(code **)(pcVar18 + 0x24d6e4))(pOVar2,uVar11,auStack_58,0)" (parenthesized_expression "(**(code **)(pcVar18 + 0x24d6e4))" ( (pointer_expression "**(code **)(pcVar18 + 0x24d6e4)" * (pointer_expression "*(code **)(pcVar18 + 0x24d6e4)" * (cast_expression "(code **)(pcVar18 + 0x24d6e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d6e4)" ( (binary_expression "pcVar18 + 0x24d6e4" identifier + number_literal) ))))) )) (argument_list "(pOVar2,uVar11,auStack_58,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*puVar14 = uVar10;" (assignment_expression "*puVar14 = uVar10" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)in_a3 = auStack_58[0];" (assignment_expression "*(undefined4 *)in_a3 = auStack_58[0]" (pointer_expression "*(undefined4 *)in_a3" * (cast_expression "(undefined4 *)in_a3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "auStack_58[0]" identifier [ number_literal ])) ;) (return_statement "return LDPS_OK;" return identifier ;) })) (expression_statement "uVar10 = 0x805;" (assignment_expression "uVar10 = 0x805" identifier = number_literal) ;) })) (expression_statement "(**(code **)(pcVar18 + 0x24cd88))\n              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)\n    ;" (call_expression "(**(code **)(pcVar18 + 0x24cd88))\n              (*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)" (parenthesized_expression "(**(code **)(pcVar18 + 0x24cd88))" ( (pointer_expression "**(code **)(pcVar18 + 0x24cd88)" * (pointer_expression "*(code **)(pcVar18 + 0x24cd88)" * (cast_expression "(code **)(pcVar18 + 0x24cd88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24cd88)" ( (binary_expression "pcVar18 + 0x24cd88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x24cc30) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24cc30) + -0x7228)" ( (binary_expression "*(int *)(pcVar18 + 0x24cc30) + -0x7b3c" (pointer_expression "*(int *)(pcVar18 + 0x24cc30)" * (cast_expression "(int *)(pcVar18 + 0x24cc30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24cc30)" ( (binary_expression "pcVar18 + 0x24cc30" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar18 + 0x24cc30) + -0x7228" (pointer_expression "*(int *)(pcVar18 + 0x24cc30)" * (cast_expression "(int *)(pcVar18 + 0x24cc30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24cc30)" ( (binary_expression "pcVar18 + 0x24cc30" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return LDPS_ERR;" return identifier ;) })) (expression_statement "uVar10 = 0x5c;" (assignment_expression "uVar10 = 0x5c" identifier = number_literal) ;) (expression_statement "piVar15 = (int *)(*(int *)(pcVar18 + 0x24cc30) + -0x742c);" (assignment_expression "piVar15 = (int *)(*(int *)(pcVar18 + 0x24cc30) + -0x742c)" identifier = (cast_expression "(int *)(*(int *)(pcVar18 + 0x24cc30) + -0x742c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0x24cc30) + -0x742c)" ( (binary_expression "*(int *)(pcVar18 + 0x24cc30) + -0x742c" (pointer_expression "*(int *)(pcVar18 + 0x24cc30)" * (cast_expression "(int *)(pcVar18 + 0x24cc30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24cc30)" ( (binary_expression "pcVar18 + 0x24cc30" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pvVar9 = (void *)(*(int *)(pcVar18 + 0x24cd78) + -0x5cec);" (assignment_expression "pvVar9 = (void *)(*(int *)(pcVar18 + 0x24cd78) + -0x5cec)" identifier = (cast_expression "(void *)(*(int *)(pcVar18 + 0x24cd78) + -0x5cec)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0x24cd78) + -0x5cec)" ( (binary_expression "*(int *)(pcVar18 + 0x24cd78) + -0x5cec" (pointer_expression "*(int *)(pcVar18 + 0x24cd78)" * (cast_expression "(int *)(pcVar18 + 0x24cd78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24cd78)" ( (binary_expression "pcVar18 + 0x24cd78" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) == 0) {\n    puVar12 = (uint *)&DAT_0000005c;\n    (**(code **)(pcVar19 + 0x24cc54))\n              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c);\n  }\n  else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);\n    puVar12 = (uint *)&DAT_000007c5;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\n    }\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) == 0)" ( (binary_expression "*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) == 0" (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x24d470) + 8)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x24d470) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x24d470) + 8)" ( (binary_expression "**(int **)(pcVar19 + 0x24d470) + 8" (pointer_expression "**(int **)(pcVar19 + 0x24d470)" * (pointer_expression "*(int **)(pcVar19 + 0x24d470)" * (cast_expression "(int **)(pcVar19 + 0x24d470)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x24d470)" ( (binary_expression "pcVar19 + 0x24d470" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar12 = (uint *)&DAT_0000005c;\n    (**(code **)(pcVar19 + 0x24cc54))\n              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c);\n  }" { (expression_statement "puVar12 = (uint *)&DAT_0000005c;" (assignment_expression "puVar12 = (uint *)&DAT_0000005c" identifier = (cast_expression "(uint *)&DAT_0000005c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "(**(code **)(pcVar19 + 0x24cc54))\n              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c);" (call_expression "(**(code **)(pcVar19 + 0x24cc54))\n              (*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x24cc54))" ( (pointer_expression "**(code **)(pcVar19 + 0x24cc54)" * (pointer_expression "*(code **)(pcVar19 + 0x24cc54)" * (cast_expression "(code **)(pcVar19 + 0x24cc54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x24cc54)" ( (binary_expression "pcVar19 + 0x24cc54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x24cc44) + -0x5cec,0x5c,*(int *)(pcVar19 + 0x24cafc) + -0x742c)" ( (binary_expression "*(int *)(pcVar19 + 0x24cc44) + -0x5cec" (pointer_expression "*(int *)(pcVar19 + 0x24cc44)" * (cast_expression "(int *)(pcVar19 + 0x24cc44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x24cc44)" ( (binary_expression "pcVar19 + 0x24cc44" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x24cafc) + -0x742c" (pointer_expression "*(int *)(pcVar19 + 0x24cafc)" * (cast_expression "(int *)(pcVar19 + 0x24cafc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x24cafc)" ( (binary_expression "pcVar19 + 0x24cafc" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);\n    puVar12 = (uint *)&DAT_000007c5;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\n    }\n  }" else (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);\n    puVar12 = (uint *)&DAT_000007c5;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\n    }\n  }" { (expression_statement "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c);" (assignment_expression "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c)" ( (binary_expression "*(int *)(**(int **)(pcVar19 + 0x24d470) + 8) + 0x594c" (pointer_expression "*(int *)(**(int **)(pcVar19 + 0x24d470) + 8)" * (cast_expression "(int *)(**(int **)(pcVar19 + 0x24d470) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar19 + 0x24d470) + 8)" ( (binary_expression "**(int **)(pcVar19 + 0x24d470) + 8" (pointer_expression "**(int **)(pcVar19 + 0x24d470)" * (pointer_expression "*(int **)(pcVar19 + 0x24d470)" * (cast_expression "(int **)(pcVar19 + 0x24d470)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x24d470)" ( (binary_expression "pcVar19 + 0x24d470" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar12 = (uint *)&DAT_000007c5;" (assignment_expression "puVar12 = (uint *)&DAT_000007c5" identifier = (cast_expression "(uint *)&DAT_000007c5" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000007c5" & identifier))) ;) (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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }\n      return lVar8;\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,pvVar9);" (call_expression "get_elf_object(pPVar1,pvVar9)" identifier (argument_list "(pPVar1,pvVar9)" ( identifier , identifier ))) ;) (if_statement "if (pOVar2 == (Object *)0x0) {\n        lVar8 = LDPS_BAD_HANDLE;\n      }\n      else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\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        lVar8 = LDPS_BAD_HANDLE;\n      }" { (expression_statement "lVar8 = LDPS_BAD_HANDLE;" (assignment_expression "lVar8 = LDPS_BAD_HANDLE" identifier = identifier) ;) }) (else_clause "else {\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }" else (compound_statement "{\n        iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);\n        lVar8 = LDPS_OK;\n        *piVar15 = iVar3;\n      }" { (expression_statement "iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10);" (assignment_expression "iVar3 = (*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10)" identifier = (call_expression "(*pOVar2->_vptr_Object[0x14])(pOVar2,uVar10)" (parenthesized_expression "(*pOVar2->_vptr_Object[0x14])" ( (pointer_expression "*pOVar2->_vptr_Object[0x14]" * (subscript_expression "pOVar2->_vptr_Object[0x14]" (field_expression "pOVar2->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar2,uVar10)" ( identifier , identifier )))) ;) (expression_statement "lVar8 = LDPS_OK;" (assignment_expression "lVar8 = LDPS_OK" identifier = identifier) ;) (expression_statement "*piVar15 = iVar3;" (assignment_expression "*piVar15 = iVar3" (pointer_expression "*piVar15" * identifier) = identifier) ;) }))) (return_statement "return lVar8;" return identifier ;) })) }))) (expression_statement "pcVar18 = *(code **)(pcVar19 + 0x24cc54);" (assignment_expression "pcVar18 = *(code **)(pcVar19 + 0x24cc54)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x24cc54)" * (cast_expression "(code **)(pcVar19 + 0x24cc54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x24cc54)" ( (binary_expression "pcVar19 + 0x24cc54" identifier + number_literal) ))))) ;) (expression_statement "pcVar21 = get_input_section_count;" (assignment_expression "pcVar21 = get_input_section_count" identifier = identifier) ;) (expression_statement "pvVar9 = (void *)(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c);" (assignment_expression "pvVar9 = (void *)(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c)" identifier = (cast_expression "(void *)(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + 0x24cafc) + -0x7b3c)" ( (binary_expression "*(int *)(pcVar19 + 0x24cafc) + -0x7b3c" (pointer_expression "*(int *)(pcVar19 + 0x24cafc)" * (cast_expression "(int *)(pcVar19 + 0x24cafc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x24cafc)" ( (binary_expression "pcVar19 + 0x24cafc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *(int *)(pcVar18 + 0x24ca18);" (assignment_expression "iVar3 = *(int *)(pcVar18 + 0x24ca18)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x24ca18)" * (cast_expression "(int *)(pcVar18 + 0x24ca18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24ca18)" ( (binary_expression "pcVar18 + 0x24ca18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0;\n    (**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af);\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) != 0)" ( (binary_expression "*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) != 0" (pointer_expression "*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar18 + 0x24d38c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar18 + 0x24d38c) + 8)" ( (binary_expression "**(int **)(pcVar18 + 0x24d38c) + 8" (pointer_expression "**(int **)(pcVar18 + 0x24d38c)" * (pointer_expression "*(int **)(pcVar18 + 0x24d38c)" * (cast_expression "(int **)(pcVar18 + 0x24d38c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d38c)" ( (binary_expression "pcVar18 + 0x24d38c" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c);\n    if (pPVar1 != (Plugin_manager *)0x0) {\n      if ((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = pOVar2->shnum_;\n        return LDPS_OK;\n      }\n      return LDPS_ERR;\n    }\n    iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0;\n    (**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af);\n  }" { (expression_statement "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c);" (assignment_expression "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c)" ( (binary_expression "*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8) + 0x594c" (pointer_expression "*(int *)(**(int **)(pcVar18 + 0x24d38c) + 8)" * (cast_expression "(int *)(**(int **)(pcVar18 + 0x24d38c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar18 + 0x24d38c) + 8)" ( (binary_expression "**(int **)(pcVar18 + 0x24d38c) + 8" (pointer_expression "**(int **)(pcVar18 + 0x24d38c)" * (pointer_expression "*(int **)(pcVar18 + 0x24d38c)" * (cast_expression "(int **)(pcVar18 + 0x24d38c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d38c)" ( (binary_expression "pcVar18 + 0x24d38c" identifier + number_literal) ))))) + 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,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = 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,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = 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,pvVar9), pOVar2 != (Object *)0x0)) {\n        *puVar12 = pOVar2->shnum_;\n        return LDPS_OK;\n      }" if (parenthesized_expression "((pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0))" ( (binary_expression "(pPVar1->in_claim_file_handler_ != false) &&\n         (pOVar2 = Plugin_manager::get_elf_object(pPVar1,pvVar9), 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,pvVar9), pOVar2 != (Object *)0x0)" ( (ERROR "pOVar2 = Plugin_manager::" (assignment_expression "pOVar2 = Plugin_manager" identifier = identifier) : :) (comma_expression "get_elf_object(pPVar1,pvVar9), pOVar2 != (Object *)0x0" (call_expression "get_elf_object(pPVar1,pvVar9)" identifier (argument_list "(pPVar1,pvVar9)" ( 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        *puVar12 = pOVar2->shnum_;\n        return LDPS_OK;\n      }" { (expression_statement "*puVar12 = pOVar2->shnum_;" (assignment_expression "*puVar12 = pOVar2->shnum_" (pointer_expression "*puVar12" * identifier) = (field_expression "pOVar2->shnum_" identifier -> field_identifier)) ;) (return_statement "return LDPS_OK;" return identifier ;) })) (return_statement "return LDPS_ERR;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0;" (assignment_expression "iVar3 = *(int *)(pcVar18 + 0x24ca18) + -0x72f0" identifier = (binary_expression "*(int *)(pcVar18 + 0x24ca18) + -0x72f0" (pointer_expression "*(int *)(pcVar18 + 0x24ca18)" * (cast_expression "(int *)(pcVar18 + 0x24ca18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24ca18)" ( (binary_expression "pcVar18 + 0x24ca18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af);" (call_expression "(**(code **)(pcVar18 + 0x24cb70))(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af)" (parenthesized_expression "(**(code **)(pcVar18 + 0x24cb70))" ( (pointer_expression "**(code **)(pcVar18 + 0x24cb70)" * (pointer_expression "*(code **)(pcVar18 + 0x24cb70)" * (cast_expression "(code **)(pcVar18 + 0x24cb70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24cb70)" ( (binary_expression "pcVar18 + 0x24cb70" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x24ca18) + -0x7b3c,0x7af)" ( (binary_expression "*(int *)(pcVar18 + 0x24ca18) + -0x7b3c" (pointer_expression "*(int *)(pcVar18 + 0x24ca18)" * (cast_expression "(int *)(pcVar18 + 0x24ca18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24ca18)" ( (binary_expression "pcVar18 + 0x24ca18" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (expression_statement "pcVar20 = *(code **)(pcVar18 + 0x24cb70);" (assignment_expression "pcVar20 = *(code **)(pcVar18 + 0x24cb70)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x24cb70)" * (cast_expression "(code **)(pcVar18 + 0x24cb70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24cb70)" ( (binary_expression "pcVar18 + 0x24cb70" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = (undefined4 *)(iVar3 + -0x742c);" (assignment_expression "puVar16 = (undefined4 *)(iVar3 + -0x742c)" identifier = (cast_expression "(undefined4 *)(iVar3 + -0x742c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x742c)" ( (binary_expression "iVar3 + -0x742c" identifier + number_literal) )))) ;) (expression_statement "iVar3 = *(int *)(pcVar18 + 0x24cb60) + -0x5cec;" (assignment_expression "iVar3 = *(int *)(pcVar18 + 0x24cb60) + -0x5cec" identifier = (binary_expression "*(int *)(pcVar18 + 0x24cb60) + -0x5cec" (pointer_expression "*(int *)(pcVar18 + 0x24cb60)" * (cast_expression "(int *)(pcVar18 + 0x24cb60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24cb60)" ( (binary_expression "pcVar18 + 0x24cb60" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar20)(iVar3,0x5c);" (call_expression "(*pcVar20)(iVar3,0x5c)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(iVar3,0x5c)" ( identifier , number_literal ))) ;) (expression_statement "pcVar19 = pcVar20 + 0x2548c0;" (assignment_expression "pcVar19 = pcVar20 + 0x2548c0" identifier = (binary_expression "pcVar20 + 0x2548c0" identifier + number_literal)) ;) (expression_statement "piVar15 = *(int **)(pcVar20 + 0x24d2d0);" (assignment_expression "piVar15 = *(int **)(pcVar20 + 0x24d2d0)" identifier = (pointer_expression "*(int **)(pcVar20 + 0x24d2d0)" * (cast_expression "(int **)(pcVar20 + 0x24d2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x24d2d0)" ( (binary_expression "pcVar20 + 0x24d2d0" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = unaff_s0;" (assignment_expression "puVar14 = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_e0 = pcVar19;" (assignment_expression "pcStack_e0 = pcVar19" identifier = identifier) ;) (if_statement "if (*(int *)(*piVar15 + 8) == 0) {\nLAB_001e5a98:\n    pcVar19 = pcStack_e0;\n    (**(code **)(pcStack_e0 + -0x7e0c))\n              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar10 = 0x8a6;\n  }\n  else {\n    iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);\n    uVar10 = 0x89d;\n    if (iVar4 != 0) {\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }" if (parenthesized_expression "(*(int *)(*piVar15 + 8) == 0)" ( (binary_expression "*(int *)(*piVar15 + 8) == 0" (pointer_expression "*(int *)(*piVar15 + 8)" * (cast_expression "(int *)(*piVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar15 + 8)" ( (binary_expression "*piVar15 + 8" (pointer_expression "*piVar15" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001e5a98:\n    pcVar19 = pcStack_e0;\n    (**(code **)(pcStack_e0 + -0x7e0c))\n              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c);\nLAB_001e5ab4:\n    uVar10 = 0x8a6;\n  }" { (labeled_statement "LAB_001e5a98:\n    pcVar19 = pcStack_e0;" statement_identifier : (expression_statement "pcVar19 = pcStack_e0;" (assignment_expression "pcVar19 = pcStack_e0" identifier = identifier) ;)) (expression_statement "(**(code **)(pcStack_e0 + -0x7e0c))\n              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c);" (call_expression "(**(code **)(pcStack_e0 + -0x7e0c))\n              (*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x7e0c))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x7e0c)" * (pointer_expression "*(code **)(pcStack_e0 + -0x7e0c)" * (cast_expression "(code **)(pcStack_e0 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x7e0c)" ( (binary_expression "pcStack_e0 + -0x7e0c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec,0x5c,\n               *(int *)(pcStack_e0 + -0x7f64) + -0x742c)" ( (binary_expression "*(int *)(pcStack_e0 + -0x7e1c) + -0x5cec" (pointer_expression "*(int *)(pcStack_e0 + -0x7e1c)" * (cast_expression "(int *)(pcStack_e0 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_e0 + -0x7e1c)" ( (binary_expression "pcStack_e0 + -0x7e1c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_e0 + -0x7f64) + -0x742c" (pointer_expression "*(int *)(pcStack_e0 + -0x7f64)" * (cast_expression "(int *)(pcStack_e0 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_e0 + -0x7f64)" ( (binary_expression "pcStack_e0 + -0x7f64" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001e5ab4:\n    uVar10 = 0x8a6;" statement_identifier : (expression_statement "uVar10 = 0x8a6;" (assignment_expression "uVar10 = 0x8a6" identifier = number_literal) ;)) }) (else_clause "else {\n    iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);\n    uVar10 = 0x89d;\n    if (iVar4 != 0) {\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }" else (compound_statement "{\n    iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);\n    uVar10 = 0x89d;\n    if (iVar4 != 0) {\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }\n  }" { (expression_statement "iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c);" (assignment_expression "iVar4 = *(int *)(*(int *)(*piVar15 + 8) + 0x594c)" identifier = (pointer_expression "*(int *)(*(int *)(*piVar15 + 8) + 0x594c)" * (cast_expression "(int *)(*(int *)(*piVar15 + 8) + 0x594c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar15 + 8) + 0x594c)" ( (binary_expression "*(int *)(*piVar15 + 8) + 0x594c" (pointer_expression "*(int *)(*piVar15 + 8)" * (cast_expression "(int *)(*piVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar15 + 8)" ( (binary_expression "*piVar15 + 8" (pointer_expression "*piVar15" * identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar10 = 0x89d;" (assignment_expression "uVar10 = 0x89d" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) {\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }\n      if (unaff_s0 == (undefined4 *)0x0) {\n        return LDPS_ERR;\n      }\n      iVar4 = *(int *)(iVar4 + 0x80);\n      if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }\n      goto LAB_001e5ab4;\n    }" { (if_statement "if (pcVar21 == (code *)0x0) {\n        return LDPS_OK;\n      }" if (parenthesized_expression "(pcVar21 == (code *)0x0)" ( (binary_expression "pcVar21 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "iVar4 = *(int *)(iVar4 + 0x80);" (assignment_expression "iVar4 = *(int *)(iVar4 + 0x80)" identifier = (pointer_expression "*(int *)(iVar4 + 0x80)" * (cast_expression "(int *)(iVar4 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x80)" ( (binary_expression "iVar4 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);\n        iVar7 = *piVar15;\n        *piVar5 = iVar3;\n        piVar5[3] = (int)in_a3;\n        piVar5[2] = (int)puVar16;\n        piVar5[5] = iStack_9c;\n        piVar5[4] = (int)(pcVar18 + 0x25497c);\n        iVar3 = *(int *)(iVar7 + 8);\n        puVar14 = puVar16;\n        unaff_s1 = in_a3;\n        if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }\n        goto LAB_001e5a98;\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18);" (assignment_expression "piVar5 = (int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18)" identifier = (cast_expression "(int *)(**(code **)(pcVar20 + 0x24ca2c))(0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar20 + 0x24ca2c))(0x18)" (parenthesized_expression "(**(code **)(pcVar20 + 0x24ca2c))" ( (pointer_expression "**(code **)(pcVar20 + 0x24ca2c)" * (pointer_expression "*(code **)(pcVar20 + 0x24ca2c)" * (cast_expression "(code **)(pcVar20 + 0x24ca2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x24ca2c)" ( (binary_expression "pcVar20 + 0x24ca2c" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "iVar7 = *piVar15;" (assignment_expression "iVar7 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "*piVar5 = iVar3;" (assignment_expression "*piVar5 = iVar3" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "piVar5[3] = (int)in_a3;" (assignment_expression "piVar5[3] = (int)in_a3" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar5[2] = (int)puVar16;" (assignment_expression "piVar5[2] = (int)puVar16" (subscript_expression "piVar5[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar5[5] = iStack_9c;" (assignment_expression "piVar5[5] = iStack_9c" (subscript_expression "piVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[4] = (int)(pcVar18 + 0x25497c);" (assignment_expression "piVar5[4] = (int)(pcVar18 + 0x25497c)" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = (cast_expression "(int)(pcVar18 + 0x25497c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar18 + 0x25497c)" ( (binary_expression "pcVar18 + 0x25497c" identifier + number_literal) )))) ;) (expression_statement "iVar3 = *(int *)(iVar7 + 8);" (assignment_expression "iVar3 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = puVar16;" (assignment_expression "puVar14 = puVar16" identifier = identifier) ;) (expression_statement "unaff_s1 = in_a3;" (assignment_expression "unaff_s1 = in_a3" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          unaff_s1 = (code *)0x0;\n          puVar14 = unaff_s0;\n          do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);\n        }" { (expression_statement "unaff_s1 = (code *)0x0;" (assignment_expression "unaff_s1 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = unaff_s0;" (assignment_expression "puVar14 = unaff_s0" identifier = identifier) ;) (do_statement "do {\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          } while (iVar3 != 0);" do (compound_statement "{\n            pOStack_d8 = Plugin_manager::get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);\n            if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }\n            uStack_d4 = puVar14[1];\n            (**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);\n            if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }\n            iVar3 = *(int *)(*piVar15 + 8);\n            puVar14 = puVar14 + 2;\n          }" { (ERROR "pOStack_d8 = Plugin_manager::" (assignment_expression "pOStack_d8 = Plugin_manager" identifier = identifier) : :) (expression_statement "get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14);" (call_expression "get_elf_object\n                                   (*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14)" identifier (argument_list "(*(Plugin_manager **)(iVar3 + 0x594c),(void *)*puVar14)" ( (pointer_expression "*(Plugin_manager **)(iVar3 + 0x594c)" * (cast_expression "(Plugin_manager **)(iVar3 + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x594c)" ( (binary_expression "iVar3 + 0x594c" identifier + number_literal) )))) , (cast_expression "(void *)*puVar14" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) ))) ;) (if_statement "if ((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)) {\n              return LDPS_BAD_HANDLE;\n            }" if (parenthesized_expression "((pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0))" ( (binary_expression "(pOStack_d8 == (Object *)0x0) ||\n               (unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0)" (parenthesized_expression "(pOStack_d8 == (Object *)0x0)" ( (binary_expression "pOStack_d8 == (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_d8->field_0x2c < 0)" ( (comma_expression "unaff_s1 = unaff_s1 + 1, *(int *)&pOStack_d8->field_0x2c < 0" (assignment_expression "unaff_s1 = unaff_s1 + 1" identifier = (binary_expression "unaff_s1 + 1" identifier + number_literal)) , (binary_expression "*(int *)&pOStack_d8->field_0x2c < 0" (pointer_expression "*(int *)&pOStack_d8->field_0x2c" * (cast_expression "(int *)&pOStack_d8->field_0x2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOStack_d8->field_0x2c" & (field_expression "pOStack_d8->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_d4 = puVar14[1];" (assignment_expression "uStack_d4 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "(**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5);" (call_expression "(**(code **)(pcStack_e0 + -0x548c))(iVar4,pOStack_d8,uStack_d4,piVar5)" (parenthesized_expression "(**(code **)(pcStack_e0 + -0x548c))" ( (pointer_expression "**(code **)(pcStack_e0 + -0x548c)" * (pointer_expression "*(code **)(pcStack_e0 + -0x548c)" * (cast_expression "(code **)(pcStack_e0 + -0x548c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_e0 + -0x548c)" ( (binary_expression "pcStack_e0 + -0x548c" identifier + number_literal) ))))) )) (argument_list "(iVar4,pOStack_d8,uStack_d4,piVar5)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (pcVar21 == unaff_s1) {\n              return LDPS_OK;\n            }" if (parenthesized_expression "(pcVar21 == unaff_s1)" ( (binary_expression "pcVar21 == unaff_s1" identifier == identifier) )) (compound_statement "{\n              return LDPS_OK;\n            }" { (return_statement "return LDPS_OK;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(*piVar15 + 8);" (assignment_expression "iVar3 = *(int *)(*piVar15 + 8)" identifier = (pointer_expression "*(int *)(*piVar15 + 8)" * (cast_expression "(int *)(*piVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar15 + 8)" ( (binary_expression "*piVar15 + 8" (pointer_expression "*piVar15" * identifier) + number_literal) ))))) ;) (expression_statement "puVar14 = puVar14 + 2;" (assignment_expression "puVar14 = puVar14 + 2" identifier = (binary_expression "puVar14 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) })) (goto_statement "goto LAB_001e5a98;" goto statement_identifier ;) })) (goto_statement "goto LAB_001e5ab4;" goto statement_identifier ;) })) }))) (expression_statement "pcVar18 = *(code **)(pcVar19 + -0x7e0c);" (assignment_expression "pcVar18 = *(code **)(pcVar19 + -0x7e0c)" identifier = (pointer_expression "*(code **)(pcVar19 + -0x7e0c)" * (cast_expression "(code **)(pcVar19 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + -0x7e0c)" ( (binary_expression "pcVar19 + -0x7e0c" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = (undefined4 *)(*(int *)(pcVar19 + -0x7f64) + -0x71b8);" (assignment_expression "puVar16 = (undefined4 *)(*(int *)(pcVar19 + -0x7f64) + -0x71b8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar19 + -0x7f64) + -0x71b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + -0x7f64) + -0x71b8)" ( (binary_expression "*(int *)(pcVar19 + -0x7f64) + -0x71b8" (pointer_expression "*(int *)(pcVar19 + -0x7f64)" * (cast_expression "(int *)(pcVar19 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + -0x7f64)" ( (binary_expression "pcVar19 + -0x7f64" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar21 = get_input_section_name;" (assignment_expression "pcVar21 = get_input_section_name" identifier = identifier) ;) (expression_statement "pvVar9 = (void *)(*(int *)(pcVar19 + -0x7f64) + -0x7b3c);" (assignment_expression "pvVar9 = (void *)(*(int *)(pcVar19 + -0x7f64) + -0x7b3c)" identifier = (cast_expression "(void *)(*(int *)(pcVar19 + -0x7f64) + -0x7b3c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar19 + -0x7f64) + -0x7b3c)" ( (binary_expression "*(int *)(pcVar19 + -0x7f64) + -0x7b3c" (pointer_expression "*(int *)(pcVar19 + -0x7f64)" * (cast_expression "(int *)(pcVar19 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + -0x7f64)" ( (binary_expression "pcVar19 + -0x7f64" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar19 = *(code **)(pcVar18 + 0x24c8f4);" (assignment_expression "pcVar19 = *(code **)(pcVar18 + 0x24c8f4)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x24c8f4)" * (cast_expression "(code **)(pcVar18 + 0x24c8f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24c8f4)" ( (binary_expression "pcVar18 + 0x24c8f4" identifier + number_literal) ))))) ;) (expression_statement "puStack_fc = puVar14;" (assignment_expression "puStack_fc = puVar14" identifier = identifier) ;) (expression_statement "pcStack_f8 = unaff_s1;" (assignment_expression "pcStack_f8 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_f4 = pcVar21;" (assignment_expression "pcStack_f4 = pcVar21" identifier = identifier) ;) (expression_statement "pvStack_f0 = pvVar9;" (assignment_expression "pvStack_f0 = pvVar9" identifier = identifier) ;) (expression_statement "uStack_ec = uVar10;" (assignment_expression "uStack_ec = uVar10" identifier = identifier) ;) (if_statement "if (*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) != 0) {\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c);\n    uVar10 = 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }\n      uVar10 = 0x7e8;\n    }\n    (**(code **)(pcVar18 + 0x24c8f4))\n              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)\n    ;\n    return LDPS_ERR;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) != 0)" ( (binary_expression "*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) != 0" (pointer_expression "*(int *)(**(int **)(pcVar18 + 0x24d110) + 8)" * (cast_expression "(int *)(**(int **)(pcVar18 + 0x24d110) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar18 + 0x24d110) + 8)" ( (binary_expression "**(int **)(pcVar18 + 0x24d110) + 8" (pointer_expression "**(int **)(pcVar18 + 0x24d110)" * (pointer_expression "*(int **)(pcVar18 + 0x24d110)" * (cast_expression "(int **)(pcVar18 + 0x24d110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d110)" ( (binary_expression "pcVar18 + 0x24d110" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c);\n    uVar10 = 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }\n      uVar10 = 0x7e8;\n    }\n    (**(code **)(pcVar18 + 0x24c8f4))\n              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)\n    ;\n    return LDPS_ERR;\n  }" { (expression_statement "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c);" (assignment_expression "pPVar1 = *(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c)" identifier = (pointer_expression "*(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c)" * (cast_expression "(Plugin_manager **)(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c)" ( (type_descriptor "Plugin_manager **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c)" ( (binary_expression "*(int *)(**(int **)(pcVar18 + 0x24d110) + 8) + 0x594c" (pointer_expression "*(int *)(**(int **)(pcVar18 + 0x24d110) + 8)" * (cast_expression "(int *)(**(int **)(pcVar18 + 0x24d110) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar18 + 0x24d110) + 8)" ( (binary_expression "**(int **)(pcVar18 + 0x24d110) + 8" (pointer_expression "**(int **)(pcVar18 + 0x24d110)" * (pointer_expression "*(int **)(pcVar18 + 0x24d110)" * (cast_expression "(int **)(pcVar18 + 0x24d110)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d110)" ( (binary_expression "pcVar18 + 0x24d110" identifier + number_literal) ))))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar10 = 0x7dc;" (assignment_expression "uVar10 = 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }\n      uVar10 = 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,pvVar9);\n      if (pOVar2 == (Object *)0x0) {\n        return LDPS_BAD_HANDLE;\n      }\n      if ((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }\n      uVar10 = 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,pvVar9);" (call_expression "get_elf_object(pPVar1,pvVar9)" identifier (argument_list "(pPVar1,pvVar9)" ( 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 **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)) {\n        (*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }" if (parenthesized_expression "((pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0))" ( (binary_expression "(pOVar2->input_file_ != (Input_file *)0x0) &&\n         (iVar3 = (**(code **)(pcVar18 + 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 **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0)" ( (comma_expression "iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_)" identifier = (call_expression "(**(code **)(pcVar18 + 0x24d2dc))(&pOVar2->input_file_->file_)" (parenthesized_expression "(**(code **)(pcVar18 + 0x24d2dc))" ( (pointer_expression "**(code **)(pcVar18 + 0x24d2dc)" * (pointer_expression "*(code **)(pcVar18 + 0x24d2dc)" * (cast_expression "(code **)(pcVar18 + 0x24d2dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24d2dc)" ( (binary_expression "pcVar18 + 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_118,pOVar2,uStack_ec);\n        uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);\n        *puVar16 = uVar10;\n        (**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);\n        if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }\n        return LDPS_OK;\n      }" { (expression_statement "(*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec);" (call_expression "(*pOVar2->_vptr_Object[0x10])(&puStack_118,pOVar2,uStack_ec)" (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_118,pOVar2,uStack_ec)" ( (pointer_expression "&puStack_118" & identifier) , identifier , identifier ))) ;) (expression_statement "uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1);" (assignment_expression "uVar10 = (**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1)" identifier = (call_expression "(**(code **)(pcVar18 + 0x250c48))(iStack_114 + 1)" (parenthesized_expression "(**(code **)(pcVar18 + 0x250c48))" ( (pointer_expression "**(code **)(pcVar18 + 0x250c48)" * (pointer_expression "*(code **)(pcVar18 + 0x250c48)" * (cast_expression "(code **)(pcVar18 + 0x250c48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x250c48)" ( (binary_expression "pcVar18 + 0x250c48" identifier + number_literal) ))))) )) (argument_list "(iStack_114 + 1)" ( (binary_expression "iStack_114 + 1" identifier + number_literal) )))) ;) (expression_statement "*puVar16 = uVar10;" (assignment_expression "*puVar16 = uVar10" (pointer_expression "*puVar16" * identifier) = identifier) ;) (expression_statement "(**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1);" (call_expression "(**(code **)(pcVar18 + 0x250cb8))(uVar10,puStack_118,iStack_114 + 1)" (parenthesized_expression "(**(code **)(pcVar18 + 0x250cb8))" ( (pointer_expression "**(code **)(pcVar18 + 0x250cb8)" * (pointer_expression "*(code **)(pcVar18 + 0x250cb8)" * (cast_expression "(code **)(pcVar18 + 0x250cb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x250cb8)" ( (binary_expression "pcVar18 + 0x250cb8" identifier + number_literal) ))))) )) (argument_list "(uVar10,puStack_118,iStack_114 + 1)" ( identifier , identifier , (binary_expression "iStack_114 + 1" identifier + number_literal) ))) ;) (if_statement "if (puStack_118 != auStack_110) {\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }" if (parenthesized_expression "(puStack_118 != auStack_110)" ( (binary_expression "puStack_118 != auStack_110" identifier != identifier) )) (compound_statement "{\n          (**(code **)(pcVar18 + 0x24c7bc))(puStack_118);\n        }" { (expression_statement "(**(code **)(pcVar18 + 0x24c7bc))(puStack_118);" (call_expression "(**(code **)(pcVar18 + 0x24c7bc))(puStack_118)" (parenthesized_expression "(**(code **)(pcVar18 + 0x24c7bc))" ( (pointer_expression "**(code **)(pcVar18 + 0x24c7bc)" * (pointer_expression "*(code **)(pcVar18 + 0x24c7bc)" * (cast_expression "(code **)(pcVar18 + 0x24c7bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24c7bc)" ( (binary_expression "pcVar18 + 0x24c7bc" identifier + number_literal) ))))) )) (argument_list "(puStack_118)" ( identifier ))) ;) })) (return_statement "return LDPS_OK;" return identifier ;) })) (expression_statement "uVar10 = 0x7e8;" (assignment_expression "uVar10 = 0x7e8" identifier = number_literal) ;) })) (expression_statement "(**(code **)(pcVar18 + 0x24c8f4))\n              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)\n    ;" (call_expression "(**(code **)(pcVar18 + 0x24c8f4))\n              (*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)" (parenthesized_expression "(**(code **)(pcVar18 + 0x24c8f4))" ( (pointer_expression "**(code **)(pcVar18 + 0x24c8f4)" * (pointer_expression "*(code **)(pcVar18 + 0x24c8f4)" * (cast_expression "(code **)(pcVar18 + 0x24c8f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x24c8f4)" ( (binary_expression "pcVar18 + 0x24c8f4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x24c79c) + -0x7b3c,uVar10,*(int *)(pcVar18 + 0x24c79c) + -0x7240)" ( (binary_expression "*(int *)(pcVar18 + 0x24c79c) + -0x7b3c" (pointer_expression "*(int *)(pcVar18 + 0x24c79c)" * (cast_expression "(int *)(pcVar18 + 0x24c79c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24c79c)" ( (binary_expression "pcVar18 + 0x24c79c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar18 + 0x24c79c) + -0x7240" (pointer_expression "*(int *)(pcVar18 + 0x24c79c)" * (cast_expression "(int *)(pcVar18 + 0x24c79c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24c79c)" ( (binary_expression "pcVar18 + 0x24c79c" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return LDPS_ERR;" return identifier ;) })) (expression_statement "uVar13 = 0x5c;" (assignment_expression "uVar13 = 0x5c" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined4 *)(*(int *)(pcVar18 + 0x24c79c) + -0x742c);" (assignment_expression "puVar14 = (undefined4 *)(*(int *)(pcVar18 + 0x24c79c) + -0x742c)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar18 + 0x24c79c) + -0x742c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0x24c79c) + -0x742c)" ( (binary_expression "*(int *)(pcVar18 + 0x24c79c) + -0x742c" (pointer_expression "*(int *)(pcVar18 + 0x24c79c)" * (cast_expression "(int *)(pcVar18 + 0x24c79c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24c79c)" ( (binary_expression "pcVar18 + 0x24c79c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar3 = *(int *)(pcVar18 + 0x24c8e4) + -0x5cec;" (assignment_expression "iVar3 = *(int *)(pcVar18 + 0x24c8e4) + -0x5cec" identifier = (binary_expression "*(int *)(pcVar18 + 0x24c8e4) + -0x5cec" (pointer_expression "*(int *)(pcVar18 + 0x24c8e4)" * (cast_expression "(int *)(pcVar18 + 0x24c8e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x24c8e4)" ( (binary_expression "pcVar18 + 0x24c8e4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(iVar3 + 0x6b) == '\0') {\n    if (((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)) {\n      iVar3 = *(int *)(iVar4 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 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 (((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)) {\n      iVar3 = *(int *)(iVar4 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24));\n    }\n    return LDPS_BAD_HANDLE;\n  }" { (if_statement "if (((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)) {\n      iVar3 = *(int *)(iVar4 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24));\n    }" if (parenthesized_expression "(((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0))" ( (binary_expression "((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)) &&\n       (iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)" (parenthesized_expression "((uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0))" ( (binary_expression "(uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2)) &&\n        (piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)" (parenthesized_expression "(uVar13 < (uint)(*(int *)(iVar3 + 0x14) - *(int *)(iVar3 + 0x10) >> 2))" ( (binary_expression "uVar13 < (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 "(piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0)" ( (comma_expression "piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4), piVar15 != (int *)0x0" (assignment_expression "piVar15 = *(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4)" identifier = (pointer_expression "*(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4)" * (cast_expression "(int **)(*(int *)(iVar3 + 0x10) + uVar13 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar3 + 0x10) + uVar13 * 4)" ( (binary_expression "*(int *)(iVar3 + 0x10) + uVar13 * 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 "uVar13 * 4" identifier * number_literal)) ))))) , (binary_expression "piVar15 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0)" ( (comma_expression "iVar4 = (**(code **)(*piVar15 + 0x14))(), iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(*piVar15 + 0x14))()" identifier = (call_expression "(**(code **)(*piVar15 + 0x14))()" (parenthesized_expression "(**(code **)(*piVar15 + 0x14))" ( (pointer_expression "**(code **)(*piVar15 + 0x14)" * (pointer_expression "*(code **)(*piVar15 + 0x14)" * (cast_expression "(code **)(*piVar15 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar15 + 0x14)" ( (binary_expression "*piVar15 + 0x14" (pointer_expression "*piVar15" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar3 = *(int *)(iVar4 + 0x1c);\n      if (iVar3 != 0) goto LAB_001e5c68;\n      (**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24));\n    }" { (expression_statement "iVar3 = *(int *)(iVar4 + 0x1c);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar4 + 0x1c)" * (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 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 **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24));" (call_expression "(**(code **)(pcVar19 + 0x24c794))\n                (*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24))" (parenthesized_expression "(**(code **)(pcVar19 + 0x24c794))" ( (pointer_expression "**(code **)(pcVar19 + 0x24c794)" * (pointer_expression "*(code **)(pcVar19 + 0x24c794)" * (cast_expression "(code **)(pcVar19 + 0x24c794)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x24c794)" ( (binary_expression "pcVar19 + 0x24c794" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x24c5dc) + 0x44a8,0x1e3,*(int *)(pcVar19 + 0x24c63c) + -0x75b4,\n                 *(undefined4 *)(iVar4 + 0x24))" ( (binary_expression "*(int *)(pcVar19 + 0x24c5dc) + 0x44a8" (pointer_expression "*(int *)(pcVar19 + 0x24c5dc)" * (cast_expression "(int *)(pcVar19 + 0x24c5dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x24c5dc)" ( (binary_expression "pcVar19 + 0x24c5dc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar19 + 0x24c63c) + -0x75b4" (pointer_expression "*(int *)(pcVar19 + 0x24c63c)" * (cast_expression "(int *)(pcVar19 + 0x24c63c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x24c63c)" ( (binary_expression "pcVar19 + 0x24c63c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" * (cast_expression "(undefined4 *)(iVar4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 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  uVar10 = (**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20);" statement_identifier : (expression_statement "uVar10 = (**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20);" (assignment_expression "uVar10 = (**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20)" identifier = (call_expression "(**(code **)(pcVar19 + 0x24c86c))(iVar3 + 0x20)" (parenthesized_expression "(**(code **)(pcVar19 + 0x24c86c))" ( (pointer_expression "**(code **)(pcVar19 + 0x24c86c)" * (pointer_expression "*(code **)(pcVar19 + 0x24c86c)" * (cast_expression "(code **)(pcVar19 + 0x24c86c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x24c86c)" ( (binary_expression "pcVar19 + 0x24c86c" identifier + number_literal) ))))) )) (argument_list "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) ;)) (expression_statement "*puVar14 = uVar10;" (assignment_expression "*puVar14 = uVar10" (pointer_expression "*puVar14" * identifier) = identifier) ;) (return_statement "return LDPS_OK;" return identifier ;) })))
(translation_unit "undefined4 FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)\n\n{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}\n\n" (function_definition "undefined4 FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)\n\n{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}" type_identifier (function_declarator "FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)" identifier (parameter_list "(void *param_1,undefined4 param_2,undefined8 *param_3)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}" { (declaration "Plugin_manager *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" 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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }" { (if_statement "if (this[0x6b] != (Plugin_manager)0x0) {\n      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }" if (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)) )) (compound_statement "{\n      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }" { (ERROR "piVar1 = (int *)gold::" (assignment_expression "piVar1 = (int *)gold" identifier = (cast_expression "(int *)gold" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "Plugin_manager::get_elf_object(this,param_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_elf_object(this,param_1);" (call_expression "get_elf_object(this,param_1)" identifier (argument_list "(this,param_1)" ( identifier , identifier ))) ;)) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }" if (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }" { (expression_statement "uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);" (assignment_expression "uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2)" identifier = (call_expression "(**(code **)(*piVar1 + 0x3c))(piVar1,param_2)" (parenthesized_expression "(**(code **)(*piVar1 + 0x3c))" ( (pointer_expression "**(code **)(*piVar1 + 0x3c)" * (pointer_expression "*(code **)(*piVar1 + 0x3c)" * (cast_expression "(code **)(*piVar1 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 0x3c)" ( (binary_expression "*piVar1 + 0x3c" (pointer_expression "*piVar1" * identifier) + number_literal) ))))) )) (argument_list "(piVar1,param_2)" ( identifier , identifier )))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*param_3 = uVar3;" (assignment_expression "*param_3 = uVar3" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (return_statement "return uVar2;" return identifier ;) })) (return_statement "return 3;" return number_literal ;) })) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0)" (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,0x82d,PTR_DAT_0043226c + -0x70e0)" ( (binary_expression "PTR_DAT_0043226c + -0x7b3c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x70e0" 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 IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (ERROR (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) : :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (return_statement return IDENT ;) })) (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_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)\n\n{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}" (type_identifier "undefined4") (function_declarator "FUN_001e547c(void *param_1,undefined4 param_2,undefined8 *param_3)" (identifier "FUN_001e547c") (parameter_list "(void *param_1,undefined4 param_2,undefined8 *param_3)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 *param_3" (type_identifier "undefined8") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  Plugin_manager *this;\n  int *piVar1;\n  undefined4 uVar2;\n  undefined8 uVar3;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }\n  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);\n  return uVar2;\n}" ({ "{") (declaration "Plugin_manager *this;" (type_identifier "Plugin_manager") (pointer_declarator "*this" (* "*") (identifier "this")) (; ";")) (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\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      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }\n    return 3;\n  }" ({ "{") (if_statement "if (this[0x6b] != (Plugin_manager)0x0) {\n      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }" (if "if") (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"))) () ")")) (compound_statement "{\n      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);\n      uVar2 = 2;\n      if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }\n      return uVar2;\n    }" ({ "{") (ERROR "piVar1 = (int *)gold::" (assignment_expression "piVar1 = (int *)gold" (identifier "piVar1") (= "=") (cast_expression "(int *)gold" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "gold"))) (: ":") (: ":")) (labeled_statement "Plugin_manager::get_elf_object(this,param_1);" (statement_identifier "Plugin_manager") (: ":") (ERROR ":" (: ":")) (expression_statement "get_elf_object(this,param_1);" (call_expression "get_elf_object(this,param_1)" (identifier "get_elf_object") (argument_list "(this,param_1)" (( "(") (identifier "this") (, ",") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }" (if "if") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);\n        uVar2 = 0;\n        *param_3 = uVar3;\n      }" ({ "{") (expression_statement "uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);" (assignment_expression "uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(*piVar1 + 0x3c))(piVar1,param_2)" (parenthesized_expression "(**(code **)(*piVar1 + 0x3c))" (( "(") (pointer_expression "**(code **)(*piVar1 + 0x3c)" (* "*") (pointer_expression "*(code **)(*piVar1 + 0x3c)" (* "*") (cast_expression "(code **)(*piVar1 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar1 + 0x3c)" (( "(") (binary_expression "*piVar1 + 0x3c" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (argument_list "(piVar1,param_2)" (( "(") (identifier "piVar1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_3 = uVar3;" (assignment_expression "*param_3 = uVar3" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (return_statement "return 3;" (return "return") (number_literal "3") (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);" (assignment_expression "uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0)" (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,0x82d,PTR_DAT_0043226c + -0x70e0)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x7b3c" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x7b3c")) (, ",") (number_literal "0x82d") (, ",") (binary_expression "PTR_DAT_0043226c + -0x70e0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x70e0")) () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))
(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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) consequence: (compound_statement (ERROR (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (return_statement (identifier)))) (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,undefined8 *param_3)

{
  Plugin_manager *this;
  int *piVar1;
  undefined4 uVar2;
  undefined8 uVar3;
  
  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) {
      piVar1 = (int *)gold::Plugin_manager::get_elf_object(this,param_1);
      uVar2 = 2;
      if (piVar1 != (int *)0x0) {
        uVar3 = (**(code **)(*piVar1 + 0x3c))(piVar1,param_2);
        uVar2 = 0;
        *param_3 = uVar3;
      }
      return uVar2;
    }
    return 3;
  }
  uVar2 = (*(code *)PTR_do_gold_unreachable_004323c4)
                    (PTR_DAT_0043226c + -0x7b3c,0x82d,PTR_DAT_0043226c + -0x70e0);
  return uVar2;
}

