
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Output_data_plt_i386 * do_make_data_plt(Target_i386_nacl * this, Layout
   * layout, Output_data_got_plt_i386 * got_plt, Output_data_space * got_irelative, bool dyn) */

Output_data_plt_i386 * __thiscall
anon_unknown.dwarf_217836::Target_i386_nacl::do_make_data_plt
          (Target_i386_nacl *this,Layout *layout,Output_data_got_plt_i386 *got_plt,
          Output_data_space *got_irelative,bool dyn)

{
  Output_data_plt_i386 *pOVar1;
  int unaff_EDI;
  Output_data_got_plt_i386 *in_stack_ffffffd4;
  Output_data_space *in_stack_ffffffd8;
  
  __x86_get_pc_thunk_di();
  if (dyn) {
    pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);
                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */
    Output_data_plt_i386::Output_data_plt_i386
              ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),
               in_stack_ffffffd4,in_stack_ffffffd8);
    pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee4cf;
    return pOVar1;
  }
  pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);
                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */
  Output_data_plt_i386::Output_data_plt_i386
            ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),
             in_stack_ffffffd4,in_stack_ffffffd8);
  pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee453;
  return pOVar1;
}



int * FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                  char param_5)

{
  int *piVar1;
  int unaff_EDI;
  
  FUN_00058c4a();
  if (param_5 != '\0') {
    piVar1 = (int *)FUN_001aa8c0(0x60);
                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */
    FUN_0004a2e0(0x40,0,param_3,param_4);
    *piVar1 = unaff_EDI + 0x2ee4cf;
    return piVar1;
  }
  piVar1 = (int *)FUN_001aa8c0(0x60);
                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */
  FUN_0004a2e0(0x40,0,param_3,param_4);
  *piVar1 = unaff_EDI + 0x2ee453;
  return piVar1;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x00058c4a
ADD EDI,0x2f4b07
PUSH ESI
PUSH EBX
SUB ESP,0x1c
CMP byte ptr [EBP + 0x18],0x0
JZ 0x0004a548
SUB ESP,0xc
MOV EBX,EDI
PUSH 0x60
CALL 0x001aa8c0
ADD ESP,0x10
PUSH dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x10]
MOV ESI,EAX
PUSH 0x0
PUSH 0x40
CALL 0x0004a2e0
LEA EAX,[EDI + 0xffff99c8]
ADD ESP,0x10
MOV dword ptr [ESI],EAX
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
MOV EBX,EDI
PUSH 0x60
CALL 0x001aa8c0
ADD ESP,0x10
PUSH dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x10]
MOV ESI,EAX
PUSH 0x0
PUSH 0x40
CALL 0x0004a2e0
LEA EAX,[EDI + 0xffff994c]
ADD ESP,0x10
MOV dword ptr [ESI],EAX
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "int * FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)\n\n{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */\n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}\n\n" (function_definition "int * FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)\n\n{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */\n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}" primitive_type (pointer_declarator "* FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" * (function_declarator "FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */\n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00058c4a();" (call_expression "FUN_00058c4a()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }" if (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }" { (expression_statement "piVar1 = (int *)FUN_001aa8c0(0x60);" (assignment_expression "piVar1 = (int *)FUN_001aa8c0(0x60)" identifier = (cast_expression "(int *)FUN_001aa8c0(0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) comment (expression_statement "FUN_0004a2e0(0x40,0,param_3,param_4);" (call_expression "FUN_0004a2e0(0x40,0,param_3,param_4)" identifier (argument_list "(0x40,0,param_3,param_4)" ( number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "*piVar1 = unaff_EDI + 0x2ee4cf;" (assignment_expression "*piVar1 = unaff_EDI + 0x2ee4cf" (pointer_expression "*piVar1" * identifier) = (binary_expression "unaff_EDI + 0x2ee4cf" identifier + number_literal)) ;) (return_statement "return piVar1;" return identifier ;) })) (expression_statement "piVar1 = (int *)FUN_001aa8c0(0x60);" (assignment_expression "piVar1 = (int *)FUN_001aa8c0(0x60)" identifier = (cast_expression "(int *)FUN_001aa8c0(0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) comment (expression_statement "FUN_0004a2e0(0x40,0,param_3,param_4);" (call_expression "FUN_0004a2e0(0x40,0,param_3,param_4)" identifier (argument_list "(0x40,0,param_3,param_4)" ( number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "*piVar1 = unaff_EDI + 0x2ee453;" (assignment_expression "*piVar1 = unaff_EDI + 0x2ee453" (pointer_expression "*piVar1" * identifier) = (binary_expression "unaff_EDI + 0x2ee453" identifier + number_literal)) ;) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: Output_data_plt_i386 * do_make_data_plt(Target_i386_nacl * this, Layout\n   * layout, Output_data_got_plt_i386 * got_plt, Output_data_space * got_irelative, bool dyn) */\n\nOutput_data_plt_i386 * __thiscall\nanon_unknown.dwarf_217836::Target_i386_nacl::do_make_data_plt\n          (Target_i386_nacl *this,Layout *layout,Output_data_got_plt_i386 *got_plt,\n          Output_data_space *got_irelative,bool dyn)\n\n{\n  Output_data_plt_i386 *pOVar1;\n  int unaff_EDI;\n  Output_data_got_plt_i386 *in_stack_ffffffd4;\n  Output_data_space *in_stack_ffffffd8;\n  \n  __x86_get_pc_thunk_di();\n  if (dyn) {\n    pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    Output_data_plt_i386::Output_data_plt_i386\n              ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n               in_stack_ffffffd4,in_stack_ffffffd8);\n    pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee4cf;\n    return pOVar1;\n  }\n  pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);\n                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */\n  Output_data_plt_i386::Output_data_plt_i386\n            ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n             in_stack_ffffffd4,in_stack_ffffffd8);\n  pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee453;\n  return pOVar1;\n}\n\n" comment comment comment (ERROR "Output_data_plt_i386 * __thiscall\nanon_unknown.dwarf_217836::" (binary_expression "Output_data_plt_i386 * __thiscall\nanon_unknown.dwarf_217836" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_217836" identifier . field_identifier)) : :) (labeled_statement "Target_i386_nacl::do_make_data_plt\n          (Target_i386_nacl *this,Layout *layout,Output_data_got_plt_i386 *got_plt,\n          Output_data_space *got_irelative,bool dyn)\n\n{\n  Output_data_plt_i386 *pOVar1;" statement_identifier : (ERROR ":do_make_data_plt\n          (Target_i386_nacl *this,Layout *layout,Output_data_got_plt_i386 *got_plt,\n          Output_data_space *got_irelative,bool dyn)\n\n{" : (call_expression "do_make_data_plt\n          (Target_i386_nacl *this,Layout *layout,Output_data_got_plt_i386 *got_plt,\n          Output_data_space *got_irelative,bool dyn)" identifier (argument_list "(Target_i386_nacl *this,Layout *layout,Output_data_got_plt_i386 *got_plt,\n          Output_data_space *got_irelative,bool dyn)" ( (binary_expression "Target_i386_nacl *this" identifier * identifier) , (binary_expression "Layout *layout" identifier * identifier) , (binary_expression "Output_data_got_plt_i386 *got_plt" identifier * identifier) , (binary_expression "Output_data_space *got_irelative" identifier * identifier) , identifier (ERROR "dyn" identifier) ))) {) (declaration "Output_data_plt_i386 *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;)) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "Output_data_got_plt_i386 *in_stack_ffffffd4;" type_identifier (pointer_declarator "*in_stack_ffffffd4" * identifier) ;) (declaration "Output_data_space *in_stack_ffffffd8;" type_identifier (pointer_declarator "*in_stack_ffffffd8" * identifier) ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (if_statement "if (dyn) {\n    pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    Output_data_plt_i386::Output_data_plt_i386\n              ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n               in_stack_ffffffd4,in_stack_ffffffd8);\n    pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee4cf;\n    return pOVar1;\n  }" if (parenthesized_expression "(dyn)" ( identifier )) (compound_statement "{\n    pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);\n                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */\n    Output_data_plt_i386::Output_data_plt_i386\n              ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n               in_stack_ffffffd4,in_stack_ffffffd8);\n    pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee4cf;\n    return pOVar1;\n  }" { (expression_statement "pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);" (assignment_expression "pOVar1 = (Output_data_plt_i386 *)operator_new(0x60)" identifier = (cast_expression "(Output_data_plt_i386 *)operator_new(0x60)" ( (type_descriptor "Output_data_plt_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) comment (labeled_statement "Output_data_plt_i386::Output_data_plt_i386\n              ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n               in_stack_ffffffd4,in_stack_ffffffd8);" statement_identifier : (ERROR ":" :) (expression_statement "Output_data_plt_i386\n              ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n               in_stack_ffffffd4,in_stack_ffffffd8);" (call_expression "Output_data_plt_i386\n              ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n               in_stack_ffffffd4,in_stack_ffffffd8)" identifier (argument_list "((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n               in_stack_ffffffd4,in_stack_ffffffd8)" ( (cast_expression "(Output_data_plt_i386 *)0x40" ( (type_descriptor "Output_data_plt_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (call_expression "CONCAT44(got_irelative,got_plt)" identifier (argument_list "(got_irelative,got_plt)" ( identifier , identifier ))) , identifier , identifier ))) ;)) (expression_statement "pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee4cf;" (assignment_expression "pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee4cf" (field_expression "pOVar1->plt_eh_frame_cie_size" identifier -> field_identifier) = (binary_expression "unaff_EDI + 0x2ee4cf" identifier + number_literal)) ;) (return_statement "return pOVar1;" return identifier ;) })) (expression_statement "pOVar1 = (Output_data_plt_i386 *)operator_new(0x60);" (assignment_expression "pOVar1 = (Output_data_plt_i386 *)operator_new(0x60)" identifier = (cast_expression "(Output_data_plt_i386 *)operator_new(0x60)" ( (type_descriptor "Output_data_plt_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) comment (labeled_statement "Output_data_plt_i386::Output_data_plt_i386\n            ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n             in_stack_ffffffd4,in_stack_ffffffd8);" statement_identifier : (ERROR ":" :) (expression_statement "Output_data_plt_i386\n            ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n             in_stack_ffffffd4,in_stack_ffffffd8);" (call_expression "Output_data_plt_i386\n            ((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n             in_stack_ffffffd4,in_stack_ffffffd8)" identifier (argument_list "((Output_data_plt_i386 *)0x40,(Layout *)0x0,CONCAT44(got_irelative,got_plt),\n             in_stack_ffffffd4,in_stack_ffffffd8)" ( (cast_expression "(Output_data_plt_i386 *)0x40" ( (type_descriptor "Output_data_plt_i386 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (call_expression "CONCAT44(got_irelative,got_plt)" identifier (argument_list "(got_irelative,got_plt)" ( identifier , identifier ))) , identifier , identifier ))) ;)) (expression_statement "pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee453;" (assignment_expression "pOVar1->plt_eh_frame_cie_size = unaff_EDI + 0x2ee453" (field_expression "pOVar1->plt_eh_frame_cie_size" identifier -> field_identifier) = (binary_expression "unaff_EDI + 0x2ee453" identifier + number_literal)) ;) (return_statement "return pOVar1;" return identifier ;) (ERROR "}" }))
(translation_unit "int * FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)\n\n{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}\n\n" (function_definition "int * FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)\n\n{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}" primitive_type (pointer_declarator "* FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" * (function_declarator "FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00058c4a();" (call_expression "FUN_00058c4a()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }" if (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }" { (expression_statement "piVar1 = (int *)FUN_001aa8c0(0x60);" (assignment_expression "piVar1 = (int *)FUN_001aa8c0(0x60)" identifier = (cast_expression "(int *)FUN_001aa8c0(0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) (expression_statement "FUN_0004a2e0(0x40,0,param_3,param_4);" (call_expression "FUN_0004a2e0(0x40,0,param_3,param_4)" identifier (argument_list "(0x40,0,param_3,param_4)" ( number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "*piVar1 = unaff_EDI + 0x2ee4cf;" (assignment_expression "*piVar1 = unaff_EDI + 0x2ee4cf" (pointer_expression "*piVar1" * identifier) = (binary_expression "unaff_EDI + 0x2ee4cf" identifier + number_literal)) ;) (return_statement "return piVar1;" return identifier ;) })) (expression_statement "piVar1 = (int *)FUN_001aa8c0(0x60);" (assignment_expression "piVar1 = (int *)FUN_001aa8c0(0x60)" identifier = (cast_expression "(int *)FUN_001aa8c0(0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x60)" identifier (argument_list "(0x60)" ( number_literal ))))) ;) (expression_statement "FUN_0004a2e0(0x40,0,param_3,param_4);" (call_expression "FUN_0004a2e0(0x40,0,param_3,param_4)" identifier (argument_list "(0x40,0,param_3,param_4)" ( number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "*piVar1 = unaff_EDI + 0x2ee453;" (assignment_expression "*piVar1 = unaff_EDI + 0x2ee453" (pointer_expression "*piVar1" * identifier) = (binary_expression "unaff_EDI + 0x2ee453" identifier + number_literal)) ;) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return IDENT ;) })))
(function_definition "int * FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)\n\n{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}" (primitive_type "int") (pointer_declarator "* FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" (* "*") (function_declarator "FUN_0004a4f0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" (identifier "FUN_0004a4f0") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                  char param_5)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) () ")")))) (compound_statement "{\n  int *piVar1;\n  int unaff_EDI;\n  \n  FUN_00058c4a();\n  if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }\n  piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n  FUN_0004a2e0(0x40,0,param_3,param_4);\n  *piVar1 = unaff_EDI + 0x2ee453;\n  return piVar1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (expression_statement "FUN_00058c4a();" (call_expression "FUN_00058c4a()" (identifier "FUN_00058c4a") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_5 != '\0') {\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }" (if "if") (parenthesized_expression "(param_5 != '\0')" (( "(") (binary_expression "param_5 != '\0'" (identifier "param_5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    piVar1 = (int *)FUN_001aa8c0(0x60);\n                    \n    FUN_0004a2e0(0x40,0,param_3,param_4);\n    *piVar1 = unaff_EDI + 0x2ee4cf;\n    return piVar1;\n  }" ({ "{") (expression_statement "piVar1 = (int *)FUN_001aa8c0(0x60);" (assignment_expression "piVar1 = (int *)FUN_001aa8c0(0x60)" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_001aa8c0(0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(0x60)" (identifier "FUN_001aa8c0") (argument_list "(0x60)" (( "(") (number_literal "0x60") () ")"))))) (; ";")) (expression_statement "FUN_0004a2e0(0x40,0,param_3,param_4);" (call_expression "FUN_0004a2e0(0x40,0,param_3,param_4)" (identifier "FUN_0004a2e0") (argument_list "(0x40,0,param_3,param_4)" (( "(") (number_literal "0x40") (, ",") (number_literal "0") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "*piVar1 = unaff_EDI + 0x2ee4cf;" (assignment_expression "*piVar1 = unaff_EDI + 0x2ee4cf" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "unaff_EDI + 0x2ee4cf" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ee4cf"))) (; ";")) (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)FUN_001aa8c0(0x60);" (assignment_expression "piVar1 = (int *)FUN_001aa8c0(0x60)" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_001aa8c0(0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(0x60)" (identifier "FUN_001aa8c0") (argument_list "(0x60)" (( "(") (number_literal "0x60") () ")"))))) (; ";")) (expression_statement "FUN_0004a2e0(0x40,0,param_3,param_4);" (call_expression "FUN_0004a2e0(0x40,0,param_3,param_4)" (identifier "FUN_0004a2e0") (argument_list "(0x40,0,param_3,param_4)" (( "(") (number_literal "0x40") (, ",") (number_literal "0") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "*piVar1 = unaff_EDI + 0x2ee453;" (assignment_expression "*piVar1 = unaff_EDI + 0x2ee453" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "unaff_EDI + 0x2ee453" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ee453"))) (; ";")) (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: Output_data_plt_i386 * do_make_data_plt(Target_i386_nacl * this, Layout
   * layout, Output_data_got_plt_i386 * got_plt, Output_data_space * got_irelative, bool dyn) */

type_1 * __thiscall
anon_unknown.dwarf_217836::Target_i386_nacl::do_make_data_plt
          (Target_i386_nacl *this,type_4 *layout,type_2 *got_plt,
          type_3 *got_irelative,bool dyn)

{
  type_1 *pOVar1;
  int var_4;
  type_2 *in_stack_ffffffd4;
  type_3 *in_stack_ffffffd8;
  
  var_1();
  if (dyn) {
    pOVar1 = (type_1 *)var_2(0x60);
                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */
    Output_data_plt_i386::type_1
              ((type_1 *)0x40,(type_4 *)0x0,var_3(got_irelative,got_plt),
               in_stack_ffffffd4,in_stack_ffffffd8);
    pOVar1->plt_eh_frame_cie_size = var_4 + 0x2ee4cf;
    return pOVar1;
  }
  pOVar1 = (type_1 *)var_2(0x60);
                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */
  Output_data_plt_i386::type_1
            ((type_1 *)0x40,(type_4 *)0x0,var_3(got_irelative,got_plt),
             in_stack_ffffffd4,in_stack_ffffffd8);
  pOVar1->plt_eh_frame_cie_size = var_4 + 0x2ee453;
  return pOVar1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier)))))

int * MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                  char param_5)

{
  int *piVar1;
  int unaff_EDI;
  
  FUN_00058c4a();
  if (param_5 != '\0') {
    piVar1 = (int *)FUN_001aa8c0(0x60);
                    /* try { // try from 0004a528 to 0004a52c has its CatchHandler @ 0004a588 */
    FUN_0004a2e0(0x40,0,param_3,param_4);
    *piVar1 = unaff_EDI + 0x2ee4cf;
    return piVar1;
  }
  piVar1 = (int *)FUN_001aa8c0(0x60);
                    /* try { // try from 0004a566 to 0004a56a has its CatchHandler @ 0004a580 */
  FUN_0004a2e0(0x40,0,param_3,param_4);
  *piVar1 = unaff_EDI + 0x2ee453;
  return piVar1;
}

