
/* DWARF original prototype: uchar * do_section_contents(Sized_dynobj<64,_true> * this, uint shndx,
   section_size_type * plen, bool cache) */

uchar * __thiscall
gold::Sized_dynobj<64,_true>::do_section_contents
          (Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)

{
  undefined *puVar1;
  int iVar2;
  uchar *puVar3;
  undefined4 uVar4;
  uint to;
  section_size_type sVar5;
  Input_file *this_00;
  Input_file *pIVar6;
  Elf_file<64,_true,_gold::Object> *pEVar7;
  Object *pOVar8;
  undefined8 uVar9;
  
  puVar1 = PTR_initialize_shnum_00432a8c;
  pEVar7 = &this->elf_file_;
  pOVar8 = (this->elf_file_).file_;
  (*(code *)PTR_initialize_shnum_00432a8c)(pEVar7);
  if ((this->elf_file_).shnum_ <= shndx) {
    uVar4 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);
    (*(code *)puVar1)(pEVar7);
    (*(code *)PTR_error_00432a5c)(pOVar8,uVar4,shndx,(this->elf_file_).shnum_);
  }
  uVar9 = (*(code *)PTR_section_header_offset_00432b04)(pEVar7,shndx);
  this_00 = pOVar8->input_file_;
  if (this_00 != (Input_file *)0x0) {
    iVar2 = (*(code *)PTR_get_view_0043249c)
                      (&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,
                       uVar9,0x40,1,1);
    sVar5 = *(section_size_type *)(iVar2 + 0x24);
    *plen = sVar5;
    if (sVar5 == 0) {
      return PTR_empty_0043584c;
    }
    pIVar6 = (this->super_Dynobj).super_Object.input_file_;
    this_00 = (Input_file *)&pIVar6->file_;
    if (pIVar6 != (Input_file *)0x0) {
      puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)();
      return puVar3;
    }
  }
                    /* WARNING: Subroutine does not return */
  Object::input_file((Object *)this_00);
}



undefined * FUN_0026dd88(int param_1,uint param_2,int *param_3)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  undefined8 uVar5;
  
  puVar1 = PTR_initialize_shnum_00432a8c;
  iVar3 = param_1 + 0x60;
  iVar4 = *(int *)(param_1 + 0x60);
  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);
  if (*(uint *)(param_1 + 0x70) <= param_2) {
    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);
    (*(code *)puVar1)(iVar3);
    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));
  }
  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);
  iVar3 = *(int *)(iVar4 + 0x1c);
  if (iVar3 != 0) {
    iVar3 = (*(code *)PTR_get_view_0043249c)
                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)
                       ,uVar5,0x40,1,1);
    iVar3 = *(int *)(iVar3 + 0x24);
    *param_3 = iVar3;
    if (iVar3 == 0) {
      return PTR_empty_0043584c;
    }
    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;
    if (*(int *)(param_1 + 0x1c) != 0) {
      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();
      return puVar1;
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0025f830(iVar3);
}


lui gp,0x1d
addiu gp,gp,-0x3bb8
addu gp,gp,t9
addiu sp,sp,-0x58
sw s6,0x4c(sp)
sw s1,0x38(sp)
addiu s1,a0,0x60
sw s0,0x34(sp)
or s0,a0,zero
sw gp,0x28(sp)
sw s5,0x48(sp)
sw s4,0x44(sp)
or s4,a3,zero
sw s3,0x40(sp)
or s3,a2,zero
sw s2,0x3c(sp)
or s2,a1,zero
sw ra,0x54(sp)
sw s7,0x50(sp)
lw s6,-0x7744(gp)
lw s5,0x60(a0)
or t9,s6,zero
jalr t9
_or a0,s1,zero
lw v0,0x70(s0)
sltu v0,s2,v0
beq v0,zero,0x0026dee8
_lw gp,0x28(sp)
lw t9,-0x76cc(gp)
or a0,s1,zero
jalr t9
_or a1,s2,zero
lw a0,0x1c(s5)
beq a0,zero,0x0026df2c
_lw gp,0x28(sp)
lw a3,0x24(s5)
li s1,0x1
lw a2,0x20(s5)
li a1,0x40
lw t9,-0x7d34(gp)
addiu a0,a0,0x20
sw v1,0x14(sp)
sw s1,0x20(sp)
sw s1,0x1c(sp)
sw a1,0x18(sp)
jalr t9
_sw v0,0x10(sp)
lw v1,0x24(v0)
lw gp,0x28(sp)
lw t1,0x1c(v0)
lw t0,0x18(v0)
bne v1,zero,0x0026de8c
_sw v1,0x0(s3)
lw ra,0x54(sp)
lw s7,0x50(sp)
lw s6,0x4c(sp)
lw s5,0x48(sp)
lw s4,0x44(sp)
lw s3,0x40(sp)
lw s2,0x3c(sp)
lw s1,0x38(sp)
lw s0,0x34(sp)
addiu sp,sp,0x58
jr ra
_lw v0,-0x4984(gp)
lw a0,0x1c(s0)
beq a0,zero,0x0026df2c
_addiu a0,a0,0x20
lw a3,0x24(s0)
lw a2,0x20(s0)
lw t9,-0x7d34(gp)
sw s4,0x20(sp)
sw s1,0x1c(sp)
sw v1,0x18(sp)
sw t1,0x14(sp)
jalr t9
_sw t0,0x10(sp)
lw ra,0x54(sp)
lw s7,0x50(sp)
lw s6,0x4c(sp)
lw s5,0x48(sp)
lw s4,0x44(sp)
lw s3,0x40(sp)
lw s2,0x3c(sp)
lw s1,0x38(sp)
lw s0,0x34(sp)
jr ra
_addiu sp,sp,0x58
lw a0,-0x7fc4(gp)
lw t9,-0x39b8(gp)
jalr t9
_addiu a0,a0,0x5028
or a0,s1,zero
or t9,s6,zero
jalr t9
_or s7,v0,zero
lw gp,0x28(sp)
or a2,s2,zero
lw a3,0x70(s0)
or a1,s7,zero
lw t9,-0x7774(gp)
jalr t9
_or a0,s5,zero
b 0x0026ddf8
_lw gp,0x28(sp)
lw t9,-0x4abc(gp)
addiu t9,t9,-0x7d0
bal 0x0025f830
_nop
(translation_unit "undefined * FUN_0026dd88(int param_1,uint param_2,int *param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0025f830(iVar3);\n}\n\n" (function_definition "undefined * FUN_0026dd88(int param_1,uint param_2,int *param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0025f830(iVar3);\n}" type_identifier (pointer_declarator "* FUN_0026dd88(int param_1,uint param_2,int *param_3)" * (function_declarator "FUN_0026dd88(int param_1,uint param_2,int *param_3)" identifier (parameter_list "(int param_1,uint param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0025f830(iVar3);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (expression_statement "puVar1 = PTR_initialize_shnum_00432a8c;" (assignment_expression "puVar1 = PTR_initialize_shnum_00432a8c" identifier = identifier) ;) (expression_statement "iVar3 = param_1 + 0x60;" (assignment_expression "iVar3 = param_1 + 0x60" identifier = (binary_expression "param_1 + 0x60" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0x60);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x60)" identifier = (pointer_expression "*(int *)(param_1 + 0x60)" * (cast_expression "(int *)(param_1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_initialize_shnum_00432a8c)(iVar3);" (call_expression "(*(code *)PTR_initialize_shnum_00432a8c)(iVar3)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_00432a8c)" ( (pointer_expression "*(code *)PTR_initialize_shnum_00432a8c" * (cast_expression "(code *)PTR_initialize_shnum_00432a8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x70) <= param_2)" ( (binary_expression "*(uint *)(param_1 + 0x70) <= param_2" (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x5028)" ( (binary_expression "PTR_LAB_0043220c + 0x5028" identifier + number_literal) )))) ;) (expression_statement "(*(code *)puVar1)(iVar3);" (call_expression "(*(code *)puVar1)(iVar3)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));" (call_expression "(*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70))" (parenthesized_expression "(*(code *)PTR_error_00432a5c)" ( (pointer_expression "*(code *)PTR_error_00432a5c" * (cast_expression "(code *)PTR_error_00432a5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);" (assignment_expression "uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2)" identifier = (call_expression "(*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2)" (parenthesized_expression "(*(code *)PTR_section_header_offset_00432b04)" ( (pointer_expression "*(code *)PTR_section_header_offset_00432b04" * (cast_expression "(code *)PTR_section_header_offset_00432b04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,param_2)" ( identifier , identifier )))) ;) (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) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);" (assignment_expression "iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" identifier = (call_expression "(*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" ( (pointer_expression "*(code *)PTR_get_view_0043249c" * (cast_expression "(code *)PTR_get_view_0043249c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + 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) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "iVar3 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x24)" identifier = (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = iVar3;" (assignment_expression "*param_3 = iVar3" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      return PTR_empty_0043584c;\n    }" { (return_statement "return PTR_empty_0043584c;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x1c) + 0x20;" (assignment_expression "iVar3 = *(int *)(param_1 + 0x1c) + 0x20" identifier = (binary_expression "*(int *)(param_1 + 0x1c) + 0x20" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) != 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }" { (expression_statement "puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();" (assignment_expression "puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)()" identifier = (cast_expression "(undefined *)(*(code *)PTR_get_view_0043249c)()" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_get_view_0043249c)()" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" ( (pointer_expression "*(code *)PTR_get_view_0043249c" * (cast_expression "(code *)PTR_get_view_0043249c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar1;" return identifier ;) })) })) comment (expression_statement "FUN_0025f830(iVar3);" (call_expression "FUN_0025f830(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })))
(translation_unit "/* DWARF original prototype: uchar * do_section_contents(Sized_dynobj<64,_true> * this, uint shndx,\n   section_size_type * plen, bool cache) */\n\nuchar * __thiscall\ngold::Sized_dynobj<64,_true>::do_section_contents\n          (Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uchar *puVar3;\n  undefined4 uVar4;\n  uint to;\n  section_size_type sVar5;\n  Input_file *this_00;\n  Input_file *pIVar6;\n  Elf_file<64,_true,_gold::Object> *pEVar7;\n  Object *pOVar8;\n  undefined8 uVar9;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  pEVar7 = &this->elf_file_;\n  pOVar8 = (this->elf_file_).file_;\n  (*(code *)PTR_initialize_shnum_00432a8c)(pEVar7);\n  if ((this->elf_file_).shnum_ <= shndx) {\n    uVar4 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(pEVar7);\n    (*(code *)PTR_error_00432a5c)(pOVar8,uVar4,shndx,(this->elf_file_).shnum_);\n  }\n  uVar9 = (*(code *)PTR_section_header_offset_00432b04)(pEVar7,shndx);\n  this_00 = pOVar8->input_file_;\n  if (this_00 != (Input_file *)0x0) {\n    iVar2 = (*(code *)PTR_get_view_0043249c)\n                      (&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,\n                       uVar9,0x40,1,1);\n    sVar5 = *(section_size_type *)(iVar2 + 0x24);\n    *plen = sVar5;\n    if (sVar5 == 0) {\n      return PTR_empty_0043584c;\n    }\n    pIVar6 = (this->super_Dynobj).super_Object.input_file_;\n    this_00 = (Input_file *)&pIVar6->file_;\n    if (pIVar6 != (Input_file *)0x0) {\n      puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)();\n      return puVar3;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  Object::input_file((Object *)this_00);\n}\n\n" comment (expression_statement "uchar * __thiscall\ngold::Sized_dynobj<64,_true>::do_section_contents\n          (Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  undefined *puVar1;" (update_expression "uchar * __thiscall\ngold::Sized_dynobj<64,_true>::do_section_contents\n          (Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  undefined *puVar1" (binary_expression "uchar * __thiscall\ngold::Sized_dynobj<64,_true>::do_section_contents\n          (Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  undefined *puVar1" (binary_expression "uchar * __thiscall\ngold::Sized_dynobj<64" (binary_expression "uchar * __thiscall" identifier * identifier) (ERROR "gold::Sized_dynobj" identifier : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::do_section_contents\n          (Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{" : : (call_expression "do_section_contents\n          (Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)" identifier (argument_list "(Sized_dynobj<64,_true> *this,uint shndx,section_size_type *plen,bool cache)" ( (binary_expression "Sized_dynobj<64" identifier < number_literal) , (binary_expression "_true> *this" identifier > (pointer_expression "*this" * identifier)) , (ERROR "uint" identifier) identifier , (binary_expression "section_size_type *plen" identifier * identifier) , (ERROR "bool" identifier) identifier ))) {) (binary_expression "undefined *puVar1" identifier * identifier)) --) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint to;" type_identifier identifier ;) (declaration "section_size_type sVar5;" type_identifier identifier ;) (declaration "Input_file *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Input_file *pIVar6;" type_identifier (pointer_declarator "*pIVar6" * identifier) ;) (ERROR "Elf_file<64,_true," (binary_expression "Elf_file<64" identifier < number_literal) , identifier ,) (labeled_statement "_gold::Object> *pEVar7;" statement_identifier : (ERROR ":" :) (expression_statement "Object> *pEVar7;" (binary_expression "Object> *pEVar7" identifier > (pointer_expression "*pEVar7" * identifier)) ;)) (declaration "Object *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (expression_statement "puVar1 = PTR_initialize_shnum_00432a8c;" (assignment_expression "puVar1 = PTR_initialize_shnum_00432a8c" identifier = identifier) ;) (expression_statement "pEVar7 = &this->elf_file_;" (assignment_expression "pEVar7 = &this->elf_file_" identifier = (pointer_expression "&this->elf_file_" & (field_expression "this->elf_file_" identifier -> field_identifier))) ;) (expression_statement "pOVar8 = (this->elf_file_).file_;" (assignment_expression "pOVar8 = (this->elf_file_).file_" identifier = (field_expression "(this->elf_file_).file_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*(code *)PTR_initialize_shnum_00432a8c)(pEVar7);" (call_expression "(*(code *)PTR_initialize_shnum_00432a8c)(pEVar7)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_00432a8c)" ( (pointer_expression "*(code *)PTR_initialize_shnum_00432a8c" * (cast_expression "(code *)PTR_initialize_shnum_00432a8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar7)" ( identifier ))) ;) (if_statement "if ((this->elf_file_).shnum_ <= shndx) {\n    uVar4 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(pEVar7);\n    (*(code *)PTR_error_00432a5c)(pOVar8,uVar4,shndx,(this->elf_file_).shnum_);\n  }" if (parenthesized_expression "((this->elf_file_).shnum_ <= shndx)" ( (binary_expression "(this->elf_file_).shnum_ <= shndx" (field_expression "(this->elf_file_).shnum_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier) <= identifier) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(pEVar7);\n    (*(code *)PTR_error_00432a5c)(pOVar8,uVar4,shndx,(this->elf_file_).shnum_);\n  }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x5028)" ( (binary_expression "PTR_LAB_0043220c + 0x5028" identifier + number_literal) )))) ;) (expression_statement "(*(code *)puVar1)(pEVar7);" (call_expression "(*(code *)puVar1)(pEVar7)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar7)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_error_00432a5c)(pOVar8,uVar4,shndx,(this->elf_file_).shnum_);" (call_expression "(*(code *)PTR_error_00432a5c)(pOVar8,uVar4,shndx,(this->elf_file_).shnum_)" (parenthesized_expression "(*(code *)PTR_error_00432a5c)" ( (pointer_expression "*(code *)PTR_error_00432a5c" * (cast_expression "(code *)PTR_error_00432a5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar8,uVar4,shndx,(this->elf_file_).shnum_)" ( identifier , identifier , identifier , (field_expression "(this->elf_file_).shnum_" (parenthesized_expression "(this->elf_file_)" ( (field_expression "this->elf_file_" identifier -> field_identifier) )) . field_identifier) ))) ;) })) (expression_statement "uVar9 = (*(code *)PTR_section_header_offset_00432b04)(pEVar7,shndx);" (assignment_expression "uVar9 = (*(code *)PTR_section_header_offset_00432b04)(pEVar7,shndx)" identifier = (call_expression "(*(code *)PTR_section_header_offset_00432b04)(pEVar7,shndx)" (parenthesized_expression "(*(code *)PTR_section_header_offset_00432b04)" ( (pointer_expression "*(code *)PTR_section_header_offset_00432b04" * (cast_expression "(code *)PTR_section_header_offset_00432b04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pEVar7,shndx)" ( identifier , identifier )))) ;) (expression_statement "this_00 = pOVar8->input_file_;" (assignment_expression "this_00 = pOVar8->input_file_" identifier = (field_expression "pOVar8->input_file_" identifier -> field_identifier)) ;) (if_statement "if (this_00 != (Input_file *)0x0) {\n    iVar2 = (*(code *)PTR_get_view_0043249c)\n                      (&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,\n                       uVar9,0x40,1,1);\n    sVar5 = *(section_size_type *)(iVar2 + 0x24);\n    *plen = sVar5;\n    if (sVar5 == 0) {\n      return PTR_empty_0043584c;\n    }\n    pIVar6 = (this->super_Dynobj).super_Object.input_file_;\n    this_00 = (Input_file *)&pIVar6->file_;\n    if (pIVar6 != (Input_file *)0x0) {\n      puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)();\n      return puVar3;\n    }\n  }" if (parenthesized_expression "(this_00 != (Input_file *)0x0)" ( (binary_expression "this_00 != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_get_view_0043249c)\n                      (&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,\n                       uVar9,0x40,1,1);\n    sVar5 = *(section_size_type *)(iVar2 + 0x24);\n    *plen = sVar5;\n    if (sVar5 == 0) {\n      return PTR_empty_0043584c;\n    }\n    pIVar6 = (this->super_Dynobj).super_Object.input_file_;\n    this_00 = (Input_file *)&pIVar6->file_;\n    if (pIVar6 != (Input_file *)0x0) {\n      puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)();\n      return puVar3;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_get_view_0043249c)\n                      (&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,\n                       uVar9,0x40,1,1);" (assignment_expression "iVar2 = (*(code *)PTR_get_view_0043249c)\n                      (&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,\n                       uVar9,0x40,1,1)" identifier = (call_expression "(*(code *)PTR_get_view_0043249c)\n                      (&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,\n                       uVar9,0x40,1,1)" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" ( (pointer_expression "*(code *)PTR_get_view_0043249c" * (cast_expression "(code *)PTR_get_view_0043249c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this_00->file_,0x40,*(undefined4 *)&pOVar8->offset_,(int)pOVar8->offset_,\n                       uVar9,0x40,1,1)" ( (pointer_expression "&this_00->file_" & (field_expression "this_00->file_" identifier -> field_identifier)) , number_literal , (pointer_expression "*(undefined4 *)&pOVar8->offset_" * (cast_expression "(undefined4 *)&pOVar8->offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar8->offset_" & (field_expression "pOVar8->offset_" identifier -> field_identifier)))) , (cast_expression "(int)pOVar8->offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar8->offset_" identifier -> field_identifier)) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "sVar5 = *(section_size_type *)(iVar2 + 0x24);" (assignment_expression "sVar5 = *(section_size_type *)(iVar2 + 0x24)" identifier = (pointer_expression "*(section_size_type *)(iVar2 + 0x24)" * (cast_expression "(section_size_type *)(iVar2 + 0x24)" ( (type_descriptor "section_size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*plen = sVar5;" (assignment_expression "*plen = sVar5" (pointer_expression "*plen" * identifier) = identifier) ;) (if_statement "if (sVar5 == 0) {\n      return PTR_empty_0043584c;\n    }" if (parenthesized_expression "(sVar5 == 0)" ( (binary_expression "sVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return PTR_empty_0043584c;\n    }" { (return_statement "return PTR_empty_0043584c;" return identifier ;) })) (expression_statement "pIVar6 = (this->super_Dynobj).super_Object.input_file_;" (assignment_expression "pIVar6 = (this->super_Dynobj).super_Object.input_file_" identifier = (field_expression "(this->super_Dynobj).super_Object.input_file_" (field_expression "(this->super_Dynobj).super_Object" (parenthesized_expression "(this->super_Dynobj)" ( (field_expression "this->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "this_00 = (Input_file *)&pIVar6->file_;" (assignment_expression "this_00 = (Input_file *)&pIVar6->file_" identifier = (cast_expression "(Input_file *)&pIVar6->file_" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar6->file_" & (field_expression "pIVar6->file_" identifier -> field_identifier)))) ;) (if_statement "if (pIVar6 != (Input_file *)0x0) {\n      puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)();\n      return puVar3;\n    }" if (parenthesized_expression "(pIVar6 != (Input_file *)0x0)" ( (binary_expression "pIVar6 != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)();\n      return puVar3;\n    }" { (expression_statement "puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)();" (assignment_expression "puVar3 = (uchar *)(*(code *)PTR_get_view_0043249c)()" identifier = (cast_expression "(uchar *)(*(code *)PTR_get_view_0043249c)()" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_get_view_0043249c)()" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" ( (pointer_expression "*(code *)PTR_get_view_0043249c" * (cast_expression "(code *)PTR_get_view_0043249c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar3;" return identifier ;) })) })) comment (labeled_statement "Object::input_file((Object *)this_00);" statement_identifier : (ERROR ":" :) (expression_statement "input_file((Object *)this_00);" (call_expression "input_file((Object *)this_00)" identifier (argument_list "((Object *)this_00)" ( (cast_expression "(Object *)this_00" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (ERROR "}" }))
(translation_unit "undefined * FUN_0026dd88(int param_1,uint param_2,int *param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    \n  FUN_0025f830(iVar3);\n}\n\n" (function_definition "undefined * FUN_0026dd88(int param_1,uint param_2,int *param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    \n  FUN_0025f830(iVar3);\n}" type_identifier (pointer_declarator "* FUN_0026dd88(int param_1,uint param_2,int *param_3)" * (function_declarator "FUN_0026dd88(int param_1,uint param_2,int *param_3)" identifier (parameter_list "(int param_1,uint param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    \n  FUN_0025f830(iVar3);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (expression_statement "puVar1 = PTR_initialize_shnum_00432a8c;" (assignment_expression "puVar1 = PTR_initialize_shnum_00432a8c" identifier = identifier) ;) (expression_statement "iVar3 = param_1 + 0x60;" (assignment_expression "iVar3 = param_1 + 0x60" identifier = (binary_expression "param_1 + 0x60" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0x60);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x60)" identifier = (pointer_expression "*(int *)(param_1 + 0x60)" * (cast_expression "(int *)(param_1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)PTR_initialize_shnum_00432a8c)(iVar3);" (call_expression "(*(code *)PTR_initialize_shnum_00432a8c)(iVar3)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_00432a8c)" ( (pointer_expression "*(code *)PTR_initialize_shnum_00432a8c" * (cast_expression "(code *)PTR_initialize_shnum_00432a8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (if_statement "if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x70) <= param_2)" ( (binary_expression "*(uint *)(param_1 + 0x70) <= param_2" (pointer_expression "*(uint *)(param_1 + 0x70)" * (cast_expression "(uint *)(param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x5028)" ( (binary_expression "PTR_LAB_0043220c + 0x5028" identifier + number_literal) )))) ;) (expression_statement "(*(code *)puVar1)(iVar3);" (call_expression "(*(code *)puVar1)(iVar3)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));" (call_expression "(*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70))" (parenthesized_expression "(*(code *)PTR_error_00432a5c)" ( (pointer_expression "*(code *)PTR_error_00432a5c" * (cast_expression "(code *)PTR_error_00432a5c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) ))) ;) })) (expression_statement "uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);" (assignment_expression "uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2)" identifier = (call_expression "(*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2)" (parenthesized_expression "(*(code *)PTR_section_header_offset_00432b04)" ( (pointer_expression "*(code *)PTR_section_header_offset_00432b04" * (cast_expression "(code *)PTR_section_header_offset_00432b04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3,param_2)" ( identifier , identifier )))) ;) (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) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);" (assignment_expression "iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" identifier = (call_expression "(*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" ( (pointer_expression "*(code *)PTR_get_view_0043249c" * (cast_expression "(code *)PTR_get_view_0043249c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + 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) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "iVar3 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x24)" identifier = (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = iVar3;" (assignment_expression "*param_3 = iVar3" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      return PTR_empty_0043584c;\n    }" { (return_statement "return PTR_empty_0043584c;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 0x1c) + 0x20;" (assignment_expression "iVar3 = *(int *)(param_1 + 0x1c) + 0x20" identifier = (binary_expression "*(int *)(param_1 + 0x1c) + 0x20" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) != 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }" { (expression_statement "puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();" (assignment_expression "puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)()" identifier = (cast_expression "(undefined *)(*(code *)PTR_get_view_0043249c)()" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_get_view_0043249c)()" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" ( (pointer_expression "*(code *)PTR_get_view_0043249c" * (cast_expression "(code *)PTR_get_view_0043249c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar1;" return identifier ;) })) })) (expression_statement "FUN_0025f830(iVar3);" (call_expression "FUN_0025f830(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (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) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })))
(function_definition "undefined * FUN_0026dd88(int param_1,uint param_2,int *param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    \n  FUN_0025f830(iVar3);\n}" (type_identifier "undefined") (pointer_declarator "* FUN_0026dd88(int param_1,uint param_2,int *param_3)" (* "*") (function_declarator "FUN_0026dd88(int param_1,uint param_2,int *param_3)" (identifier "FUN_0026dd88") (parameter_list "(int param_1,uint param_2,int *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined8 uVar5;\n  \n  puVar1 = PTR_initialize_shnum_00432a8c;\n  iVar3 = param_1 + 0x60;\n  iVar4 = *(int *)(param_1 + 0x60);\n  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);\n  if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }\n  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);\n  iVar3 = *(int *)(iVar4 + 0x1c);\n  if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }\n                    \n  FUN_0025f830(iVar3);\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (expression_statement "puVar1 = PTR_initialize_shnum_00432a8c;" (assignment_expression "puVar1 = PTR_initialize_shnum_00432a8c" (identifier "puVar1") (= "=") (identifier "PTR_initialize_shnum_00432a8c")) (; ";")) (expression_statement "iVar3 = param_1 + 0x60;" (assignment_expression "iVar3 = param_1 + 0x60" (identifier "iVar3") (= "=") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60"))) (; ";")) (expression_statement "iVar4 = *(int *)(param_1 + 0x60);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x60)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x60)" (* "*") (cast_expression "(int *)(param_1 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_initialize_shnum_00432a8c)(iVar3);" (call_expression "(*(code *)PTR_initialize_shnum_00432a8c)(iVar3)" (parenthesized_expression "(*(code *)PTR_initialize_shnum_00432a8c)" (( "(") (pointer_expression "*(code *)PTR_initialize_shnum_00432a8c" (* "*") (cast_expression "(code *)PTR_initialize_shnum_00432a8c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_initialize_shnum_00432a8c"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x70) <= param_2) {\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x70) <= param_2)" (( "(") (binary_expression "*(uint *)(param_1 + 0x70) <= param_2" (pointer_expression "*(uint *)(param_1 + 0x70)" (* "*") (cast_expression "(uint *)(param_1 + 0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (<= "<=") (identifier "param_2")) () ")")) (compound_statement "{\n    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);\n    (*(code *)puVar1)(iVar3);\n    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" (( "(") (pointer_expression "*(code *)PTR_gettext_00436818" (* "*") (cast_expression "(code *)PTR_gettext_00436818" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_00436818"))) () ")")) (argument_list "(PTR_LAB_0043220c + 0x5028)" (( "(") (binary_expression "PTR_LAB_0043220c + 0x5028" (identifier "PTR_LAB_0043220c") (+ "+") (number_literal "0x5028")) () ")")))) (; ";")) (expression_statement "(*(code *)puVar1)(iVar3);" (call_expression "(*(code *)puVar1)(iVar3)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));" (call_expression "(*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70))" (parenthesized_expression "(*(code *)PTR_error_00432a5c)" (( "(") (pointer_expression "*(code *)PTR_error_00432a5c" (* "*") (cast_expression "(code *)PTR_error_00432a5c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_error_00432a5c"))) () ")")) (argument_list "(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70))" (( "(") (identifier "iVar4") (, ",") (identifier "uVar2") (, ",") (identifier "param_2") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);" (assignment_expression "uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2)" (parenthesized_expression "(*(code *)PTR_section_header_offset_00432b04)" (( "(") (pointer_expression "*(code *)PTR_section_header_offset_00432b04" (* "*") (cast_expression "(code *)PTR_section_header_offset_00432b04" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_section_header_offset_00432b04"))) () ")")) (argument_list "(iVar3,param_2)" (( "(") (identifier "iVar3") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar4 + 0x1c);" (assignment_expression "iVar3 = *(int *)(iVar4 + 0x1c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 0x1c)" (* "*") (cast_expression "(int *)(iVar4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);\n    iVar3 = *(int *)(iVar3 + 0x24);\n    *param_3 = iVar3;\n    if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }\n    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;\n    if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1);" (assignment_expression "iVar3 = (*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_get_view_0043249c)\n                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" (( "(") (pointer_expression "*(code *)PTR_get_view_0043249c" (* "*") (cast_expression "(code *)PTR_get_view_0043249c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_view_0043249c"))) () ")")) (argument_list "(iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)\n                       ,uVar5,0x40,1,1)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) (, ",") (number_literal "0x40") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x24)" (( "(") (binary_expression "iVar4 + 0x24" (identifier "iVar4") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "uVar5") (, ",") (number_literal "0x40") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar3 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x24)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + 0x24)" (* "*") (cast_expression "(int *)(iVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*param_3 = iVar3;" (assignment_expression "*param_3 = iVar3" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == 0) {\n      return PTR_empty_0043584c;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return PTR_empty_0043584c;\n    }" ({ "{") (return_statement "return PTR_empty_0043584c;" (return "return") (identifier "PTR_empty_0043584c") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(param_1 + 0x1c) + 0x20;" (assignment_expression "iVar3 = *(int *)(param_1 + 0x1c) + 0x20" (identifier "iVar3") (= "=") (binary_expression "*(int *)(param_1 + 0x1c) + 0x20" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x20"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) != 0) {\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) != 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();\n      return puVar1;\n    }" ({ "{") (expression_statement "puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();" (assignment_expression "puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)()" (identifier "puVar1") (= "=") (cast_expression "(undefined *)(*(code *)PTR_get_view_0043249c)()" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_get_view_0043249c)()" (parenthesized_expression "(*(code *)PTR_get_view_0043249c)" (( "(") (pointer_expression "*(code *)PTR_get_view_0043249c" (* "*") (cast_expression "(code *)PTR_get_view_0043249c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_view_0043249c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar1;" (return "return") (identifier "puVar1") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0025f830(iVar3);" (call_expression "FUN_0025f830(iVar3)" (identifier "FUN_0025f830") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: uchar * do_section_contents(Sized_dynobj<64,_true> * this, uint shndx,
   section_size_type * plen, bool cache) */

var_1 * var_2
gold::Sized_dynobj<64,_true>::do_section_contents
          (Sized_dynobj<64,_true> *this,type_2 var_6,type_3 *plen,bool cache)

{
  var_3 *var_4;
  int var_9;
  var_1 *puVar3;
  type_1 uVar4;
  type_2 to;
  type_3 var_10;
  type_4 *var_8;
  type_4 *var_11;
  Elf_file<64,_true,_gold::var_5> *pEVar7;
  var_5 *pOVar8;
  type_5 uVar9;
  
  var_4 = PTR_initialize_shnum_00432a8c;
  pEVar7 = &this->elf_file_;
  pOVar8 = (this->elf_file_).file_;
  (*(type_6 *)PTR_initialize_shnum_00432a8c)(pEVar7);
  if ((this->elf_file_).shnum_ <= var_6) {
    uVar4 = (*(type_6 *)PTR_gettext_00436818)(var_7 + 0x5028);
    (*(type_6 *)var_4)(pEVar7);
    (*(type_6 *)PTR_error_00432a5c)(pOVar8,uVar4,var_6,(this->elf_file_).shnum_);
  }
  uVar9 = (*(type_6 *)PTR_section_header_offset_00432b04)(pEVar7,var_6);
  var_8 = pOVar8->input_file_;
  if (var_8 != (type_4 *)0x0) {
    var_9 = (*(type_6 *)PTR_get_view_0043249c)
                      (&var_8->file_,0x40,*(type_1 *)&pOVar8->offset_,(int)pOVar8->offset_,
                       uVar9,0x40,1,1);
    var_10 = *(type_3 *)(var_9 + 0x24);
    *plen = var_10;
    if (var_10 == 0) {
      return PTR_empty_0043584c;
    }
    var_11 = (this->super_Dynobj).super_Object.input_file_;
    var_8 = (type_4 *)&var_11->file_;
    if (var_11 != (type_4 *)0x0) {
      puVar3 = (var_1 *)(*(type_6 *)PTR_get_view_0043249c)();
      return puVar3;
    }
  }
                    /* WARNING: Subroutine does not return */
  Object::var_12((var_5 *)var_8);
}


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

undefined * MASKED(int param_1,uint param_2,int *param_3)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  undefined8 uVar5;
  
  puVar1 = PTR_initialize_shnum_00432a8c;
  iVar3 = param_1 + 0x60;
  iVar4 = *(int *)(param_1 + 0x60);
  (*(code *)PTR_initialize_shnum_00432a8c)(iVar3);
  if (*(uint *)(param_1 + 0x70) <= param_2) {
    uVar2 = (*(code *)PTR_gettext_00436818)(PTR_LAB_0043220c + 0x5028);
    (*(code *)puVar1)(iVar3);
    (*(code *)PTR_error_00432a5c)(iVar4,uVar2,param_2,*(undefined4 *)(param_1 + 0x70));
  }
  uVar5 = (*(code *)PTR_section_header_offset_00432b04)(iVar3,param_2);
  iVar3 = *(int *)(iVar4 + 0x1c);
  if (iVar3 != 0) {
    iVar3 = (*(code *)PTR_get_view_0043249c)
                      (iVar3 + 0x20,0x40,*(undefined4 *)(iVar4 + 0x20),*(undefined4 *)(iVar4 + 0x24)
                       ,uVar5,0x40,1,1);
    iVar3 = *(int *)(iVar3 + 0x24);
    *param_3 = iVar3;
    if (iVar3 == 0) {
      return PTR_empty_0043584c;
    }
    iVar3 = *(int *)(param_1 + 0x1c) + 0x20;
    if (*(int *)(param_1 + 0x1c) != 0) {
      puVar1 = (undefined *)(*(code *)PTR_get_view_0043249c)();
      return puVar1;
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0025f830(iVar3);
}

