
/* WARNING: Variable defined which should be unmapped: loc */
/* DWARF original prototype: uchar * do_section_contents(Sized_relobj_file<64,_true> * this, uint
   shndx, section_size_type * plen, bool cache) */

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

{
  Input_file *pIVar1;
  uchar *puVar2;
  int unaff_EDI;
  Location loc;
  
  __x86_get_pc_thunk_di();
  elfcpp::Elf_file<64,_true,_gold::Object>::section_contents(&this->elf_file_,shndx);
  if (loc.data_size._4_4_ != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable((char *)(unaff_EDI + 0x1c5762),0xc0,(char *)(unaff_EDI + 0x1cb471));
  }
  *plen = (section_size_type)loc.data_size;
  if ((section_size_type)loc.data_size == 0) {
    return (uchar *)(unaff_EDI + 0x1cba0f);
  }
  pIVar1 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;
  if (pIVar1 != (Input_file *)0x0) {
    puVar2 = File_read::get_view(&pIVar1->file_,
                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.
                                 offset_,CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset),
                                 (section_size_type)loc.data_size,true,cache);
    return puVar2;
  }
                    /* WARNING: Subroutine does not return */
  Object::input_file((Object *)loc.file_offset);
}



int FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)

{
  undefined4 uVar1;
  int iVar2;
  int unaff_EDI;
  undefined4 local_30;
  undefined4 local_2c;
  int local_28;
  int local_24;
  
  FUN_000559ee();
  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);
  if (local_24 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);
  }
  *param_2 = local_28;
  if (local_28 == 0) {
    return unaff_EDI + 0x1cba0f;
  }
  if (*(int *)(param_1 + 0x1c) != 0) {
    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),
                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000b1650();
}


PUSH EBP
PUSH EDI
CALL 0x000559ee
ADD EDI,0x2cd349
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
MOV EBX,dword ptr [ESP + 0x3c]
MOV EAX,ESP
SUB ESP,0x4
PUSH dword ptr [ESP + 0x38]
LEA EDX,[ESI + 0x90]
PUSH EDX
PUSH EAX
CALL 0x000c1be0
MOV EDX,dword ptr [ESP + 0x14]
ADD ESP,0xc
MOV ECX,dword ptr [ESP + 0xc]
TEST ECX,ECX
JNZ 0x000c1d43
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EAX],EDX
LEA EAX,[EDI + 0xffefe6c6]
TEST EDX,EDX
JNZ 0x000c1d10
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EBP,dword ptr [ESI + 0x1c]
MOVZX EAX,BL
MOV ECX,dword ptr [ESP]
MOV EBX,dword ptr [ESP + 0x4]
TEST EBP,EBP
JZ 0x000c1d5e
ADD EBP,0x1c
PUSH EAX
PUSH 0x1
PUSH EDX
PUSH EBX
MOV EBX,EDI
PUSH ECX
PUSH dword ptr [ESI + 0x24]
PUSH dword ptr [ESI + 0x20]
PUSH EBP
CALL 0x000687f0
ADD ESP,0x20
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH EAX
LEA EAX,[EDI + 0xffefe128]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffef8419]
PUSH 0xc0
PUSH EAX
CALL 0x00069d00
CALL 0x000b1650
(translation_unit "int FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000b1650();\n}\n\n" (function_definition "int FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000b1650();\n}" primitive_type (function_declarator "FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined1 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000b1650();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "FUN_000559ee();" (call_expression "FUN_000559ee()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);" (assignment_expression "uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2)" identifier = (call_expression "FUN_000c1be0(&local_2c,param_1 + 0x90,param_2)" identifier (argument_list "(&local_2c,param_1 + 0x90,param_2)" ( (pointer_expression "&local_2c" & identifier) , (binary_expression "param_1 + 0x90" identifier + number_literal) , identifier )))) ;) (if_statement "if (local_24 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }" { comment (expression_statement "FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);" (call_expression "FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1)" identifier (argument_list "(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1)" ( (binary_expression "unaff_EDI + 0x1c5762" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x1cb471" identifier + number_literal) , identifier ))) ;) })) (expression_statement "*param_2 = local_28;" (assignment_expression "*param_2 = local_28" (pointer_expression "*param_2" * identifier) = identifier) ;) (if_statement "if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (compound_statement "{\n    return unaff_EDI + 0x1cba0f;\n  }" { (return_statement "return unaff_EDI + 0x1cba0f;" return (binary_expression "unaff_EDI + 0x1cba0f" identifier + number_literal) ;) })) (if_statement "if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\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    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }" { (expression_statement "iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);" (assignment_expression "iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" identifier = (call_expression "FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (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) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) comment (expression_statement "FUN_000b1650();" (call_expression "FUN_000b1650()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Variable defined which should be unmapped: loc */\n/* DWARF original prototype: uchar * do_section_contents(Sized_relobj_file<64,_true> * this, uint\n   shndx, section_size_type * plen, bool cache) */\n\nuchar * __thiscall\ngold::Sized_relobj_file<64,_true>::do_section_contents\n          (Sized_relobj_file<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  Input_file *pIVar1;\n  uchar *puVar2;\n  int unaff_EDI;\n  Location loc;\n  \n  __x86_get_pc_thunk_di();\n  elfcpp::Elf_file<64,_true,_gold::Object>::section_contents(&this->elf_file_,shndx);\n  if (loc.data_size._4_4_ != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable((char *)(unaff_EDI + 0x1c5762),0xc0,(char *)(unaff_EDI + 0x1cb471));\n  }\n  *plen = (section_size_type)loc.data_size;\n  if ((section_size_type)loc.data_size == 0) {\n    return (uchar *)(unaff_EDI + 0x1cba0f);\n  }\n  pIVar1 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;\n  if (pIVar1 != (Input_file *)0x0) {\n    puVar2 = File_read::get_view(&pIVar1->file_,\n                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                                 offset_,CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset),\n                                 (section_size_type)loc.data_size,true,cache);\n    return puVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  Object::input_file((Object *)loc.file_offset);\n}\n\n" comment comment (expression_statement "uchar * __thiscall\ngold::Sized_relobj_file<64,_true>::do_section_contents\n          (Sized_relobj_file<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  Input_file *pIVar1;" (update_expression "uchar * __thiscall\ngold::Sized_relobj_file<64,_true>::do_section_contents\n          (Sized_relobj_file<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  Input_file *pIVar1" (binary_expression "uchar * __thiscall\ngold::Sized_relobj_file<64,_true>::do_section_contents\n          (Sized_relobj_file<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{\n  Input_file *pIVar1" (binary_expression "uchar * __thiscall\ngold::Sized_relobj_file<64" (binary_expression "uchar * __thiscall" identifier * identifier) (ERROR "gold::Sized_relobj_file" identifier : : identifier) < number_literal) (ERROR ",_true" , identifier) > (ERROR "::do_section_contents\n          (Sized_relobj_file<64,_true> *this,uint shndx,section_size_type *plen,bool cache)\n\n{" : : (call_expression "do_section_contents\n          (Sized_relobj_file<64,_true> *this,uint shndx,section_size_type *plen,bool cache)" identifier (argument_list "(Sized_relobj_file<64,_true> *this,uint shndx,section_size_type *plen,bool cache)" ( (binary_expression "Sized_relobj_file<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 "Input_file *pIVar1" identifier * identifier)) --) ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "Location loc;" type_identifier identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (labeled_statement "elfcpp::Elf_file<64,_true,_gold::Object>::section_contents(&this->elf_file_,shndx);" statement_identifier (ERROR "::Elf_file<64,_true,_gold::Object>:" : : (comma_expression "Elf_file<64,_true,_gold" (binary_expression "Elf_file<64" identifier < number_literal) , (comma_expression "_true,_gold" identifier , identifier)) : : identifier > :) : (expression_statement "section_contents(&this->elf_file_,shndx);" (call_expression "section_contents(&this->elf_file_,shndx)" identifier (argument_list "(&this->elf_file_,shndx)" ( (pointer_expression "&this->elf_file_" & (field_expression "this->elf_file_" identifier -> field_identifier)) , identifier ))) ;)) (if_statement "if (loc.data_size._4_4_ != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable((char *)(unaff_EDI + 0x1c5762),0xc0,(char *)(unaff_EDI + 0x1cb471));\n  }" if (parenthesized_expression "(loc.data_size._4_4_ != 0)" ( (binary_expression "loc.data_size._4_4_ != 0" (field_expression "loc.data_size._4_4_" (field_expression "loc.data_size" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable((char *)(unaff_EDI + 0x1c5762),0xc0,(char *)(unaff_EDI + 0x1cb471));\n  }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x1c5762),0xc0,(char *)(unaff_EDI + 0x1cb471));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x1c5762),0xc0,(char *)(unaff_EDI + 0x1cb471))" identifier (argument_list "((char *)(unaff_EDI + 0x1c5762),0xc0,(char *)(unaff_EDI + 0x1cb471))" ( (cast_expression "(char *)(unaff_EDI + 0x1c5762)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1c5762)" ( (binary_expression "unaff_EDI + 0x1c5762" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x1cb471)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1cb471)" ( (binary_expression "unaff_EDI + 0x1cb471" identifier + number_literal) ))) ))) ;) })) (expression_statement "*plen = (section_size_type)loc.data_size;" (assignment_expression "*plen = (section_size_type)loc.data_size" (pointer_expression "*plen" * identifier) = (cast_expression "(section_size_type)loc.data_size" ( (type_descriptor "section_size_type" type_identifier) ) (field_expression "loc.data_size" identifier . field_identifier))) ;) (if_statement "if ((section_size_type)loc.data_size == 0) {\n    return (uchar *)(unaff_EDI + 0x1cba0f);\n  }" if (parenthesized_expression "((section_size_type)loc.data_size == 0)" ( (binary_expression "(section_size_type)loc.data_size == 0" (cast_expression "(section_size_type)loc.data_size" ( (type_descriptor "section_size_type" type_identifier) ) (field_expression "loc.data_size" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n    return (uchar *)(unaff_EDI + 0x1cba0f);\n  }" { (return_statement "return (uchar *)(unaff_EDI + 0x1cba0f);" return (cast_expression "(uchar *)(unaff_EDI + 0x1cba0f)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1cba0f)" ( (binary_expression "unaff_EDI + 0x1cba0f" identifier + number_literal) ))) ;) })) (expression_statement "pIVar1 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;" (assignment_expression "pIVar1 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_" identifier = (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar1 != (Input_file *)0x0) {\n    puVar2 = File_read::get_view(&pIVar1->file_,\n                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                                 offset_,CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset),\n                                 (section_size_type)loc.data_size,true,cache);\n    return puVar2;\n  }" if (parenthesized_expression "(pIVar1 != (Input_file *)0x0)" ( (binary_expression "pIVar1 != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = File_read::get_view(&pIVar1->file_,\n                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                                 offset_,CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset),\n                                 (section_size_type)loc.data_size,true,cache);\n    return puVar2;\n  }" { (ERROR "puVar2 = File_read::" (assignment_expression "puVar2 = File_read" identifier = identifier) : :) (expression_statement "get_view(&pIVar1->file_,\n                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                                 offset_,CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset),\n                                 (section_size_type)loc.data_size,true,cache);" (call_expression "get_view(&pIVar1->file_,\n                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                                 offset_,CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset),\n                                 (section_size_type)loc.data_size,true,cache)" identifier (argument_list "(&pIVar1->file_,\n                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                                 offset_,CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset),\n                                 (section_size_type)loc.data_size,true,cache)" ( (pointer_expression "&pIVar1->file_" & (field_expression "pIVar1->file_" identifier -> field_identifier)) , (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.\n                                 offset_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) , (call_expression "CONCAT44(loc.file_offset._4_4_,(Object *)loc.file_offset)" identifier (argument_list "(loc.file_offset._4_4_,(Object *)loc.file_offset)" ( (field_expression "loc.file_offset._4_4_" (field_expression "loc.file_offset" identifier . field_identifier) . field_identifier) , (cast_expression "(Object *)loc.file_offset" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "loc.file_offset" identifier . field_identifier)) ))) , (cast_expression "(section_size_type)loc.data_size" ( (type_descriptor "section_size_type" type_identifier) ) (field_expression "loc.data_size" identifier . field_identifier)) , true , identifier ))) ;) (return_statement "return puVar2;" return identifier ;) })) comment (labeled_statement "Object::input_file((Object *)loc.file_offset);" statement_identifier : (ERROR ":" :) (expression_statement "input_file((Object *)loc.file_offset);" (call_expression "input_file((Object *)loc.file_offset)" identifier (argument_list "((Object *)loc.file_offset)" ( (cast_expression "(Object *)loc.file_offset" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "loc.file_offset" identifier . field_identifier)) ))) ;)) (ERROR "}" }))
(translation_unit "int FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    \n  FUN_000b1650();\n}\n\n" (function_definition "int FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    \n  FUN_000b1650();\n}" primitive_type (function_declarator "FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined1 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    \n  FUN_000b1650();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "FUN_000559ee();" (call_expression "FUN_000559ee()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);" (assignment_expression "uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2)" identifier = (call_expression "FUN_000c1be0(&local_2c,param_1 + 0x90,param_2)" identifier (argument_list "(&local_2c,param_1 + 0x90,param_2)" ( (pointer_expression "&local_2c" & identifier) , (binary_expression "param_1 + 0x90" identifier + number_literal) , identifier )))) ;) (if_statement "if (local_24 != 0) {\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }" { (expression_statement "FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);" (call_expression "FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1)" identifier (argument_list "(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1)" ( (binary_expression "unaff_EDI + 0x1c5762" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x1cb471" identifier + number_literal) , identifier ))) ;) })) (expression_statement "*param_2 = local_28;" (assignment_expression "*param_2 = local_28" (pointer_expression "*param_2" * identifier) = identifier) ;) (if_statement "if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (compound_statement "{\n    return unaff_EDI + 0x1cba0f;\n  }" { (return_statement "return unaff_EDI + 0x1cba0f;" return (binary_expression "unaff_EDI + 0x1cba0f" identifier + number_literal) ;) })) (if_statement "if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\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    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }" { (expression_statement "iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);" (assignment_expression "iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" identifier = (call_expression "FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (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) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal , identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "FUN_000b1650();" (call_expression "FUN_000b1650()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 , IDENT , IDENT , LIT , IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    \n  FUN_000b1650();\n}" (primitive_type "int") (function_declarator "FUN_000c1cb0(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)" (identifier "FUN_000c1cb0") (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined1 param_4" (type_identifier "undefined1") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int unaff_EDI;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  int local_24;\n  \n  FUN_000559ee();\n  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);\n  if (local_24 != 0) {\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }\n  *param_2 = local_28;\n  if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }\n  if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }\n                    \n  FUN_000b1650();\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "FUN_000559ee();" (call_expression "FUN_000559ee()" (identifier "FUN_000559ee") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);" (assignment_expression "uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2)" (identifier "uVar1") (= "=") (call_expression "FUN_000c1be0(&local_2c,param_1 + 0x90,param_2)" (identifier "FUN_000c1be0") (argument_list "(&local_2c,param_1 + 0x90,param_2)" (( "(") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (local_24 != 0) {\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }" (if "if") (parenthesized_expression "(local_24 != 0)" (( "(") (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);\n  }" ({ "{") (expression_statement "FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);" (call_expression "FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1)" (identifier "FUN_00069d00") (argument_list "(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1)" (( "(") (binary_expression "unaff_EDI + 0x1c5762" (identifier "unaff_EDI") (+ "+") (number_literal "0x1c5762")) (, ",") (number_literal "0xc0") (, ",") (binary_expression "unaff_EDI + 0x1cb471" (identifier "unaff_EDI") (+ "+") (number_literal "0x1cb471")) (, ",") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_2 = local_28;" (assignment_expression "*param_2 = local_28" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "local_28")) (; ";")) (if_statement "if (local_28 == 0) {\n    return unaff_EDI + 0x1cba0f;\n  }" (if "if") (parenthesized_expression "(local_28 == 0)" (( "(") (binary_expression "local_28 == 0" (identifier "local_28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return unaff_EDI + 0x1cba0f;\n  }" ({ "{") (return_statement "return unaff_EDI + 0x1cba0f;" (return "return") (binary_expression "unaff_EDI + 0x1cba0f" (identifier "unaff_EDI") (+ "+") (number_literal "0x1cba0f")) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x1c) != 0) {\n    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\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    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);\n    return iVar2;\n  }" ({ "{") (expression_statement "iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);" (assignment_expression "iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" (identifier "iVar2") (= "=") (call_expression "FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" (identifier "FUN_000687f0") (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (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 "0x1c")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "local_30") (, ",") (identifier "local_2c") (, ",") (identifier "local_28") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "FUN_000b1650();" (call_expression "FUN_000b1650()" (identifier "FUN_000b1650") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Variable defined which should be unmapped: loc */
/* DWARF original prototype: uchar * do_section_contents(Sized_relobj_file<64,_true> * this, uint
   shndx, section_size_type * plen, bool cache) */

var_1 * var_2
gold::Sized_relobj_file<64,_true>::do_section_contents
          (Sized_relobj_file<64,_true> *this,uint shndx,type_2 *plen,bool cache)

{
  var_3 *var_4;
  var_1 *puVar2;
  int var_8;
  type_1 loc;
  
  var_5();
  elfcpp::Elf_file<64,_true,_gold::type_3>::var_6(&this->elf_file_,shndx);
  if (loc.data_size._4_4_ != 0) {
                    /* WARNING: Subroutine does not return */
    var_7((char *)(var_8 + 0x1c5762),0xc0,(char *)(var_8 + 0x1cb471));
  }
  *plen = (type_2)loc.data_size;
  if ((type_2)loc.data_size == 0) {
    return (var_1 *)(var_8 + 0x1cba0f);
  }
  var_4 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.input_file_;
  if (var_4 != (var_3 *)0x0) {
    puVar2 = File_read::var_9(&var_4->file_,
                                 (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.
                                 offset_,var_10(loc.file_offset._4_4_,(type_3 *)loc.file_offset),
                                 (type_2)loc.data_size,true,cache);
    return puVar2;
  }
                    /* WARNING: Subroutine does not return */
  Object::var_11((type_3 *)loc.file_offset);
}


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

int MASKED(int param_1,int *param_2,undefined4 param_3,undefined1 param_4)

{
  undefined4 uVar1;
  int iVar2;
  int unaff_EDI;
  undefined4 local_30;
  undefined4 local_2c;
  int local_28;
  int local_24;
  
  FUN_000559ee();
  uVar1 = FUN_000c1be0(&local_2c,param_1 + 0x90,param_2);
  if (local_24 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00069d00(unaff_EDI + 0x1c5762,0xc0,unaff_EDI + 0x1cb471,uVar1);
  }
  *param_2 = local_28;
  if (local_28 == 0) {
    return unaff_EDI + 0x1cba0f;
  }
  if (*(int *)(param_1 + 0x1c) != 0) {
    iVar2 = FUN_000687f0(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),
                         *(undefined4 *)(param_1 + 0x24),local_30,local_2c,local_28,1,param_4);
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000b1650();
}

