
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original name: gold_warning_at_location<64, false> */

void __thiscall
gold::gold_warning_at_location<64,_false>
          (gold *this,Relocate_info<64,_false> *relinfo,size_t relnum,off_t reloffset,char *format,
          ...)

{
  off_t oVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  Errors *this_00;
  undefined4 uVar4;
  int in_t9;
  undefined1 *local_48 [2];
  undefined1 auStack_40 [16];
  va_list args;
  
  puVar3 = *(undefined4 **)(in_t9 + 0x35233c);
  uVar4 = *puVar3;
  this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);
  args = (va_list)((int)&reloffset + 4);
  uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);
  (**(code **)(in_t9 + 0x34fefc))(local_48,this,relinfo);
                    /* try { // try from 00173918 to 0017391f has its CatchHandler @ 001739a8 */
  (**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);
  oVar1 = reloffset;
  if (local_48[0] != auStack_40) {
    (**(code **)(in_t9 + 0x34da8c))();
    oVar1 = reloffset;
  }
  reloffset._0_4_ = (undefined4)((ulonglong)oVar1 >> 0x20);
  (**(code **)(in_t9 + 0x352248))(*puVar3,reloffset._0_4_,(va_list)((int)&reloffset + 4));
  reloffset = oVar1;
  (**(code **)(in_t9 + 0x3522a8))(10,*puVar3);
  Errors::increment_counter(this_00,&this_00->warning_count_);
  return;
}



/* void gold::gold_warning_at_location<64, false>(gold::Relocate_info<64, false> const*, unsigned
   int, long long, char const*, ...) */

void __thiscall
gold::gold_warning_at_location<64,false>
          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  Errors *this_00;
  undefined4 uVar4;
  int in_t9;
  undefined1 *local_48 [2];
  undefined1 auStack_40 [16];
  int local_30;
  
  puVar3 = *(undefined4 **)(in_t9 + 0x35233c);
  uVar4 = *puVar3;
  this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);
  local_30 = (int)&param_3 + 4;
  uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);
  (**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1);
                    /* try { // try from 00173918 to 0017391f has its CatchHandler @ 001739a8 */
  (**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);
  lVar1 = param_3;
  if (local_48[0] != auStack_40) {
    (**(code **)(in_t9 + 0x34da8c))();
    lVar1 = param_3;
  }
  param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20);
  (**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4);
  param_3 = lVar1;
  (**(code **)(in_t9 + 0x3522a8))(10,*puVar3);
  Errors::increment_counter(this_00,(int *)(this_00 + 0x20));
  return;
}


lui gp,0x35
addiu gp,gp,0x59d0
addu gp,gp,t9
addiu sp,sp,-0x68
lw v0,-0x788c(gp)
lw t9,-0x3610(gp)
sw s6,0x5c(sp)
or s6,a0,zero
sw s0,0x44(sp)
sw s2,0x4c(sp)
addiu s2,sp,0x7c
sw gp,0x18(sp)
sw ra,0x64(sp)
sw s7,0x60(sp)
or s7,a1,zero
sw s5,0x58(sp)
or s5,a3,zero
sw s4,0x54(sp)
or s4,a2,zero
sw s3,0x50(sp)
sw s1,0x48(sp)
sw s2,0x38(sp)
lw a0,-0x77f0(gp)
lw s0,-0x3694(gp)
lw v0,0x0(v0)
addiu a0,a0,-0x3b8
lw s3,0x0(s0)
jalr t9
_lw s1,0x0(v0)
addiu a0,sp,0x20
lw gp,0x18(sp)
or a2,s7,zero
or a1,s6,zero
sw s4,0x10(sp)
sw s5,0x14(sp)
lw t9,-0x5ad4(gp)
jalr t9
_or s4,v0,zero
or a1,s4,zero
lw gp,0x18(sp)
or a0,s3,zero
lw t9,-0x36f8(gp)
jalr t9
_lw a2,0x20(sp)
lw a0,0x20(sp)
addiu v0,sp,0x28
beq a0,v0,0x00173940
_lw gp,0x18(sp)
lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x3788(gp)
or a2,s2,zero
lw a0,0x0(s0)
jalr t9
_lw a1,0x78(sp)
li a0,0xa
lw gp,0x18(sp)
lw t9,-0x3728(gp)
jalr t9
_lw a1,0x0(s0)
addiu a1,s1,0x20
lw gp,0x18(sp)
lw t9,-0x5afc(gp)
bal 0x001723e8
_or a0,s1,zero
lw ra,0x64(sp)
lw s7,0x60(sp)
lw s6,0x5c(sp)
lw s5,0x58(sp)
lw s4,0x54(sp)
lw s3,0x50(sp)
lw s2,0x4c(sp)
lw s1,0x48(sp)
lw s0,0x44(sp)
jr ra
_addiu sp,sp,0x68
(translation_unit "/* void gold::gold_warning_at_location<64, false>(gold::Relocate_info<64, false> const*, unsigned\n   int, long long, char const*, ...) */\n\nvoid __thiscall\ngold::gold_warning_at_location<64,false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong lVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  Errors *this_00;\n  undefined4 uVar4;\n  int in_t9;\n  undefined1 *local_48 [2];\n  undefined1 auStack_40 [16];\n  int local_30;\n  \n  puVar3 = *(undefined4 **)(in_t9 + 0x35233c);\n  uVar4 = *puVar3;\n  this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);\n  local_30 = (int)&param_3 + 4;\n  uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);\n  (**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1);\n                    /* try { // try from 00173918 to 0017391f has its CatchHandler @ 001739a8 */\n  (**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);\n  lVar1 = param_3;\n  if (local_48[0] != auStack_40) {\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }\n  param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20);\n  (**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4);\n  param_3 = lVar1;\n  (**(code **)(in_t9 + 0x3522a8))(10,*puVar3);\n  Errors::increment_counter(this_00,(int *)(this_00 + 0x20));\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::gold_warning_at_location<64,false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong lVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong" (function_declarator "false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)" identifier (ERROR ">" >) (parameter_list "(gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)" ( (parameter_declaration "gold *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "longlong param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (variadic_parameter "..." ...) ))) { identifier) identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "Errors *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "undefined1 *local_48 [2];" type_identifier (pointer_declarator "*local_48 [2]" * (array_declarator "local_48 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_40 [16];" type_identifier (array_declarator "auStack_40 [16]" identifier [ number_literal ]) ;) (declaration "int local_30;" primitive_type identifier ;) (expression_statement "puVar3 = *(undefined4 **)(in_t9 + 0x35233c);" (assignment_expression "puVar3 = *(undefined4 **)(in_t9 + 0x35233c)" identifier = (pointer_expression "*(undefined4 **)(in_t9 + 0x35233c)" * (cast_expression "(undefined4 **)(in_t9 + 0x35233c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x35233c)" ( (binary_expression "in_t9 + 0x35233c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *puVar3;" (assignment_expression "uVar4 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);" (assignment_expression "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" identifier = (pointer_expression "*(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" * (cast_expression "(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" ( (type_descriptor "Errors **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined4 **)(in_t9 + 0x34e144)" * (pointer_expression "*(undefined4 **)(in_t9 + 0x34e144)" * (cast_expression "(undefined4 **)(in_t9 + 0x34e144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34e144)" ( (binary_expression "in_t9 + 0x34e144" identifier + number_literal) )))))))) ;) (expression_statement "local_30 = (int)&param_3 + 4;" (assignment_expression "local_30 = (int)&param_3 + 4" identifier = (binary_expression "(int)&param_3 + 4" (cast_expression "(int)&param_3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3" & identifier)) + number_literal)) ;) (expression_statement "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);" (assignment_expression "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" identifier = (call_expression "(**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" (parenthesized_expression "(**(code **)(in_t9 + 0x3523c0))" ( (pointer_expression "**(code **)(in_t9 + 0x3523c0)" * (pointer_expression "*(code **)(in_t9 + 0x3523c0)" * (cast_expression "(code **)(in_t9 + 0x3523c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3523c0)" ( (binary_expression "in_t9 + 0x3523c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" ( (binary_expression "*(int *)(in_t9 + 0x34e1e0) + -0x3b8" (pointer_expression "*(int *)(in_t9 + 0x34e1e0)" * (cast_expression "(int *)(in_t9 + 0x34e1e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x34e1e0)" ( (binary_expression "in_t9 + 0x34e1e0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1);" (call_expression "(**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1)" (parenthesized_expression "(**(code **)(in_t9 + 0x34fefc))" ( (pointer_expression "**(code **)(in_t9 + 0x34fefc)" * (pointer_expression "*(code **)(in_t9 + 0x34fefc)" * (cast_expression "(code **)(in_t9 + 0x34fefc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34fefc)" ( (binary_expression "in_t9 + 0x34fefc" identifier + number_literal) ))))) )) (argument_list "(local_48,this,param_1)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);" (call_expression "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0])" (parenthesized_expression "(**(code **)(in_t9 + 0x3522d8))" ( (pointer_expression "**(code **)(in_t9 + 0x3522d8)" * (pointer_expression "*(code **)(in_t9 + 0x3522d8)" * (cast_expression "(code **)(in_t9 + 0x3522d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3522d8)" ( (binary_expression "in_t9 + 0x3522d8" identifier + number_literal) ))))) )) (argument_list "(uVar4,uVar2,local_48[0])" ( identifier , identifier , (subscript_expression "local_48[0]" identifier [ number_literal ]) ))) ;) (expression_statement "lVar1 = param_3;" (assignment_expression "lVar1 = param_3" identifier = identifier) ;) (if_statement "if (local_48[0] != auStack_40) {\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }" if (parenthesized_expression "(local_48[0] != auStack_40)" ( (binary_expression "local_48[0] != auStack_40" (subscript_expression "local_48[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }" { (expression_statement "(**(code **)(in_t9 + 0x34da8c))();" (call_expression "(**(code **)(in_t9 + 0x34da8c))()" (parenthesized_expression "(**(code **)(in_t9 + 0x34da8c))" ( (pointer_expression "**(code **)(in_t9 + 0x34da8c)" * (pointer_expression "*(code **)(in_t9 + 0x34da8c)" * (cast_expression "(code **)(in_t9 + 0x34da8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34da8c)" ( (binary_expression "in_t9 + 0x34da8c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "lVar1 = param_3;" (assignment_expression "lVar1 = param_3" identifier = identifier) ;) })) (expression_statement "param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20);" (assignment_expression "param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20)" (field_expression "param_3._0_4_" identifier . field_identifier) = (call_expression "(undefined4)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4);" (call_expression "(**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4)" (parenthesized_expression "(**(code **)(in_t9 + 0x352248))" ( (pointer_expression "**(code **)(in_t9 + 0x352248)" * (pointer_expression "*(code **)(in_t9 + 0x352248)" * (cast_expression "(code **)(in_t9 + 0x352248)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x352248)" ( (binary_expression "in_t9 + 0x352248" identifier + number_literal) ))))) )) (argument_list "(*puVar3,param_3._0_4_,(int)&param_3 + 4)" ( (pointer_expression "*puVar3" * identifier) , (field_expression "param_3._0_4_" identifier . field_identifier) , (binary_expression "(int)&param_3 + 4" (cast_expression "(int)&param_3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3" & identifier)) + number_literal) ))) ;) (expression_statement "param_3 = lVar1;" (assignment_expression "param_3 = lVar1" identifier = identifier) ;) (expression_statement "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3);" (call_expression "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x3522a8))" ( (pointer_expression "**(code **)(in_t9 + 0x3522a8)" * (pointer_expression "*(code **)(in_t9 + 0x3522a8)" * (cast_expression "(code **)(in_t9 + 0x3522a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3522a8)" ( (binary_expression "in_t9 + 0x3522a8" identifier + number_literal) ))))) )) (argument_list "(10,*puVar3)" ( number_literal , (pointer_expression "*puVar3" * identifier) ))) ;) (labeled_statement "Errors::increment_counter(this_00,(int *)(this_00 + 0x20));" statement_identifier : (ERROR ":" :) (expression_statement "increment_counter(this_00,(int *)(this_00 + 0x20));" (call_expression "increment_counter(this_00,(int *)(this_00 + 0x20))" identifier (argument_list "(this_00,(int *)(this_00 + 0x20))" ( identifier , (cast_expression "(int *)(this_00 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x20)" ( (binary_expression "this_00 + 0x20" identifier + number_literal) ))) ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original name: gold_warning_at_location<64, false> */\n\nvoid __thiscall\ngold::gold_warning_at_location<64,_false>\n          (gold *this,Relocate_info<64,_false> *relinfo,size_t relnum,off_t reloffset,char *format,\n          ...)\n\n{\n  off_t oVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  Errors *this_00;\n  undefined4 uVar4;\n  int in_t9;\n  undefined1 *local_48 [2];\n  undefined1 auStack_40 [16];\n  va_list args;\n  \n  puVar3 = *(undefined4 **)(in_t9 + 0x35233c);\n  uVar4 = *puVar3;\n  this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);\n  args = (va_list)((int)&reloffset + 4);\n  uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);\n  (**(code **)(in_t9 + 0x34fefc))(local_48,this,relinfo);\n                    /* try { // try from 00173918 to 0017391f has its CatchHandler @ 001739a8 */\n  (**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);\n  oVar1 = reloffset;\n  if (local_48[0] != auStack_40) {\n    (**(code **)(in_t9 + 0x34da8c))();\n    oVar1 = reloffset;\n  }\n  reloffset._0_4_ = (undefined4)((ulonglong)oVar1 >> 0x20);\n  (**(code **)(in_t9 + 0x352248))(*puVar3,reloffset._0_4_,(va_list)((int)&reloffset + 4));\n  reloffset = oVar1;\n  (**(code **)(in_t9 + 0x3522a8))(10,*puVar3);\n  Errors::increment_counter(this_00,&this_00->warning_count_);\n  return;\n}\n\n" comment comment comment comment comment comment comment (declaration "void __thiscall\ngold::gold_warning_at_location<64,_false>\n          (gold *this,Relocate_info<64,_false> *relinfo,size_t relnum,off_t reloffset,char *format,\n          ...)\n\n{\n  off_t oVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>\n          (gold *this,Relocate_info<64,_false> *relinfo,size_t relnum,off_t reloffset,char *format,\n          ...)\n\n{\n  off_t" (function_declarator "_false>\n          (gold *this,Relocate_info<64,_false> *relinfo,size_t relnum,off_t reloffset,char *format,\n          ...)" identifier (ERROR ">" >) (parameter_list "(gold *this,Relocate_info<64,_false> *relinfo,size_t relnum,off_t reloffset,char *format,\n          ...)" ( (parameter_declaration "gold *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *relinfo" type_identifier (ERROR ">" >) (pointer_declarator "*relinfo" * identifier)) , (parameter_declaration "size_t relnum" primitive_type identifier) , (parameter_declaration "off_t reloffset" type_identifier identifier) , (parameter_declaration "char *format" primitive_type (pointer_declarator "*format" * identifier)) , (variadic_parameter "..." ...) ))) { identifier) identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "Errors *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "undefined1 *local_48 [2];" type_identifier (pointer_declarator "*local_48 [2]" * (array_declarator "local_48 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_40 [16];" type_identifier (array_declarator "auStack_40 [16]" identifier [ number_literal ]) ;) (declaration "va_list args;" type_identifier identifier ;) (expression_statement "puVar3 = *(undefined4 **)(in_t9 + 0x35233c);" (assignment_expression "puVar3 = *(undefined4 **)(in_t9 + 0x35233c)" identifier = (pointer_expression "*(undefined4 **)(in_t9 + 0x35233c)" * (cast_expression "(undefined4 **)(in_t9 + 0x35233c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x35233c)" ( (binary_expression "in_t9 + 0x35233c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *puVar3;" (assignment_expression "uVar4 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);" (assignment_expression "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" identifier = (pointer_expression "*(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" * (cast_expression "(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" ( (type_descriptor "Errors **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined4 **)(in_t9 + 0x34e144)" * (pointer_expression "*(undefined4 **)(in_t9 + 0x34e144)" * (cast_expression "(undefined4 **)(in_t9 + 0x34e144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34e144)" ( (binary_expression "in_t9 + 0x34e144" identifier + number_literal) )))))))) ;) (expression_statement "args = (va_list)((int)&reloffset + 4);" (assignment_expression "args = (va_list)((int)&reloffset + 4)" identifier = (call_expression "(va_list)((int)&reloffset + 4)" (parenthesized_expression "(va_list)" ( identifier )) (argument_list "((int)&reloffset + 4)" ( (binary_expression "(int)&reloffset + 4" (cast_expression "(int)&reloffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&reloffset" & identifier)) + number_literal) )))) ;) (expression_statement "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);" (assignment_expression "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" identifier = (call_expression "(**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" (parenthesized_expression "(**(code **)(in_t9 + 0x3523c0))" ( (pointer_expression "**(code **)(in_t9 + 0x3523c0)" * (pointer_expression "*(code **)(in_t9 + 0x3523c0)" * (cast_expression "(code **)(in_t9 + 0x3523c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3523c0)" ( (binary_expression "in_t9 + 0x3523c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" ( (binary_expression "*(int *)(in_t9 + 0x34e1e0) + -0x3b8" (pointer_expression "*(int *)(in_t9 + 0x34e1e0)" * (cast_expression "(int *)(in_t9 + 0x34e1e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x34e1e0)" ( (binary_expression "in_t9 + 0x34e1e0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(in_t9 + 0x34fefc))(local_48,this,relinfo);" (call_expression "(**(code **)(in_t9 + 0x34fefc))(local_48,this,relinfo)" (parenthesized_expression "(**(code **)(in_t9 + 0x34fefc))" ( (pointer_expression "**(code **)(in_t9 + 0x34fefc)" * (pointer_expression "*(code **)(in_t9 + 0x34fefc)" * (cast_expression "(code **)(in_t9 + 0x34fefc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34fefc)" ( (binary_expression "in_t9 + 0x34fefc" identifier + number_literal) ))))) )) (argument_list "(local_48,this,relinfo)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);" (call_expression "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0])" (parenthesized_expression "(**(code **)(in_t9 + 0x3522d8))" ( (pointer_expression "**(code **)(in_t9 + 0x3522d8)" * (pointer_expression "*(code **)(in_t9 + 0x3522d8)" * (cast_expression "(code **)(in_t9 + 0x3522d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3522d8)" ( (binary_expression "in_t9 + 0x3522d8" identifier + number_literal) ))))) )) (argument_list "(uVar4,uVar2,local_48[0])" ( identifier , identifier , (subscript_expression "local_48[0]" identifier [ number_literal ]) ))) ;) (expression_statement "oVar1 = reloffset;" (assignment_expression "oVar1 = reloffset" identifier = identifier) ;) (if_statement "if (local_48[0] != auStack_40) {\n    (**(code **)(in_t9 + 0x34da8c))();\n    oVar1 = reloffset;\n  }" if (parenthesized_expression "(local_48[0] != auStack_40)" ( (binary_expression "local_48[0] != auStack_40" (subscript_expression "local_48[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (**(code **)(in_t9 + 0x34da8c))();\n    oVar1 = reloffset;\n  }" { (expression_statement "(**(code **)(in_t9 + 0x34da8c))();" (call_expression "(**(code **)(in_t9 + 0x34da8c))()" (parenthesized_expression "(**(code **)(in_t9 + 0x34da8c))" ( (pointer_expression "**(code **)(in_t9 + 0x34da8c)" * (pointer_expression "*(code **)(in_t9 + 0x34da8c)" * (cast_expression "(code **)(in_t9 + 0x34da8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34da8c)" ( (binary_expression "in_t9 + 0x34da8c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "oVar1 = reloffset;" (assignment_expression "oVar1 = reloffset" identifier = identifier) ;) })) (expression_statement "reloffset._0_4_ = (undefined4)((ulonglong)oVar1 >> 0x20);" (assignment_expression "reloffset._0_4_ = (undefined4)((ulonglong)oVar1 >> 0x20)" (field_expression "reloffset._0_4_" identifier . field_identifier) = (call_expression "(undefined4)((ulonglong)oVar1 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)oVar1 >> 0x20)" ( (binary_expression "(ulonglong)oVar1 >> 0x20" (cast_expression "(ulonglong)oVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(**(code **)(in_t9 + 0x352248))(*puVar3,reloffset._0_4_,(va_list)((int)&reloffset + 4));" (call_expression "(**(code **)(in_t9 + 0x352248))(*puVar3,reloffset._0_4_,(va_list)((int)&reloffset + 4))" (parenthesized_expression "(**(code **)(in_t9 + 0x352248))" ( (pointer_expression "**(code **)(in_t9 + 0x352248)" * (pointer_expression "*(code **)(in_t9 + 0x352248)" * (cast_expression "(code **)(in_t9 + 0x352248)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x352248)" ( (binary_expression "in_t9 + 0x352248" identifier + number_literal) ))))) )) (argument_list "(*puVar3,reloffset._0_4_,(va_list)((int)&reloffset + 4))" ( (pointer_expression "*puVar3" * identifier) , (field_expression "reloffset._0_4_" identifier . field_identifier) , (call_expression "(va_list)((int)&reloffset + 4)" (parenthesized_expression "(va_list)" ( identifier )) (argument_list "((int)&reloffset + 4)" ( (binary_expression "(int)&reloffset + 4" (cast_expression "(int)&reloffset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&reloffset" & identifier)) + number_literal) ))) ))) ;) (expression_statement "reloffset = oVar1;" (assignment_expression "reloffset = oVar1" identifier = identifier) ;) (expression_statement "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3);" (call_expression "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x3522a8))" ( (pointer_expression "**(code **)(in_t9 + 0x3522a8)" * (pointer_expression "*(code **)(in_t9 + 0x3522a8)" * (cast_expression "(code **)(in_t9 + 0x3522a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3522a8)" ( (binary_expression "in_t9 + 0x3522a8" identifier + number_literal) ))))) )) (argument_list "(10,*puVar3)" ( number_literal , (pointer_expression "*puVar3" * identifier) ))) ;) (labeled_statement "Errors::increment_counter(this_00,&this_00->warning_count_);" statement_identifier : (ERROR ":" :) (expression_statement "increment_counter(this_00,&this_00->warning_count_);" (call_expression "increment_counter(this_00,&this_00->warning_count_)" identifier (argument_list "(this_00,&this_00->warning_count_)" ( identifier , (pointer_expression "&this_00->warning_count_" & (field_expression "this_00->warning_count_" identifier -> field_identifier)) ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::gold_warning_at_location<64,false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong lVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  Errors *this_00;\n  undefined4 uVar4;\n  int in_t9;\n  undefined1 *local_48 [2];\n  undefined1 auStack_40 [16];\n  int local_30;\n  \n  puVar3 = *(undefined4 **)(in_t9 + 0x35233c);\n  uVar4 = *puVar3;\n  this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);\n  local_30 = (int)&param_3 + 4;\n  uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);\n  (**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1);\n                    \n  (**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);\n  lVar1 = param_3;\n  if (local_48[0] != auStack_40) {\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }\n  param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20);\n  (**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4);\n  param_3 = lVar1;\n  (**(code **)(in_t9 + 0x3522a8))(10,*puVar3);\n  Errors::increment_counter(this_00,(int *)(this_00 + 0x20));\n  return;\n}\n\n" (declaration "void __thiscall\ngold::gold_warning_at_location<64,false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong lVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong" (function_declarator "false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)" identifier (ERROR ">" >) (parameter_list "(gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)" ( (parameter_declaration "gold *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "longlong param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (variadic_parameter "..." ...) ))) { identifier) identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "Errors *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "undefined1 *local_48 [2];" type_identifier (pointer_declarator "*local_48 [2]" * (array_declarator "local_48 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_40 [16];" type_identifier (array_declarator "auStack_40 [16]" identifier [ number_literal ]) ;) (declaration "int local_30;" primitive_type identifier ;) (expression_statement "puVar3 = *(undefined4 **)(in_t9 + 0x35233c);" (assignment_expression "puVar3 = *(undefined4 **)(in_t9 + 0x35233c)" identifier = (pointer_expression "*(undefined4 **)(in_t9 + 0x35233c)" * (cast_expression "(undefined4 **)(in_t9 + 0x35233c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x35233c)" ( (binary_expression "in_t9 + 0x35233c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *puVar3;" (assignment_expression "uVar4 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);" (assignment_expression "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" identifier = (pointer_expression "*(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" * (cast_expression "(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" ( (type_descriptor "Errors **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "**(undefined4 **)(in_t9 + 0x34e144)" * (pointer_expression "*(undefined4 **)(in_t9 + 0x34e144)" * (cast_expression "(undefined4 **)(in_t9 + 0x34e144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34e144)" ( (binary_expression "in_t9 + 0x34e144" identifier + number_literal) )))))))) ;) (expression_statement "local_30 = (int)&param_3 + 4;" (assignment_expression "local_30 = (int)&param_3 + 4" identifier = (binary_expression "(int)&param_3 + 4" (cast_expression "(int)&param_3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3" & identifier)) + number_literal)) ;) (expression_statement "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);" (assignment_expression "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" identifier = (call_expression "(**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" (parenthesized_expression "(**(code **)(in_t9 + 0x3523c0))" ( (pointer_expression "**(code **)(in_t9 + 0x3523c0)" * (pointer_expression "*(code **)(in_t9 + 0x3523c0)" * (cast_expression "(code **)(in_t9 + 0x3523c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3523c0)" ( (binary_expression "in_t9 + 0x3523c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" ( (binary_expression "*(int *)(in_t9 + 0x34e1e0) + -0x3b8" (pointer_expression "*(int *)(in_t9 + 0x34e1e0)" * (cast_expression "(int *)(in_t9 + 0x34e1e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x34e1e0)" ( (binary_expression "in_t9 + 0x34e1e0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1);" (call_expression "(**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1)" (parenthesized_expression "(**(code **)(in_t9 + 0x34fefc))" ( (pointer_expression "**(code **)(in_t9 + 0x34fefc)" * (pointer_expression "*(code **)(in_t9 + 0x34fefc)" * (cast_expression "(code **)(in_t9 + 0x34fefc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34fefc)" ( (binary_expression "in_t9 + 0x34fefc" identifier + number_literal) ))))) )) (argument_list "(local_48,this,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);" (call_expression "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0])" (parenthesized_expression "(**(code **)(in_t9 + 0x3522d8))" ( (pointer_expression "**(code **)(in_t9 + 0x3522d8)" * (pointer_expression "*(code **)(in_t9 + 0x3522d8)" * (cast_expression "(code **)(in_t9 + 0x3522d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3522d8)" ( (binary_expression "in_t9 + 0x3522d8" identifier + number_literal) ))))) )) (argument_list "(uVar4,uVar2,local_48[0])" ( identifier , identifier , (subscript_expression "local_48[0]" identifier [ number_literal ]) ))) ;) (expression_statement "lVar1 = param_3;" (assignment_expression "lVar1 = param_3" identifier = identifier) ;) (if_statement "if (local_48[0] != auStack_40) {\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }" if (parenthesized_expression "(local_48[0] != auStack_40)" ( (binary_expression "local_48[0] != auStack_40" (subscript_expression "local_48[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }" { (expression_statement "(**(code **)(in_t9 + 0x34da8c))();" (call_expression "(**(code **)(in_t9 + 0x34da8c))()" (parenthesized_expression "(**(code **)(in_t9 + 0x34da8c))" ( (pointer_expression "**(code **)(in_t9 + 0x34da8c)" * (pointer_expression "*(code **)(in_t9 + 0x34da8c)" * (cast_expression "(code **)(in_t9 + 0x34da8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x34da8c)" ( (binary_expression "in_t9 + 0x34da8c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "lVar1 = param_3;" (assignment_expression "lVar1 = param_3" identifier = identifier) ;) })) (expression_statement "param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20);" (assignment_expression "param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20)" (field_expression "param_3._0_4_" identifier . field_identifier) = (call_expression "(undefined4)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4);" (call_expression "(**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4)" (parenthesized_expression "(**(code **)(in_t9 + 0x352248))" ( (pointer_expression "**(code **)(in_t9 + 0x352248)" * (pointer_expression "*(code **)(in_t9 + 0x352248)" * (cast_expression "(code **)(in_t9 + 0x352248)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x352248)" ( (binary_expression "in_t9 + 0x352248" identifier + number_literal) ))))) )) (argument_list "(*puVar3,param_3._0_4_,(int)&param_3 + 4)" ( (pointer_expression "*puVar3" * identifier) , (field_expression "param_3._0_4_" identifier . field_identifier) , (binary_expression "(int)&param_3 + 4" (cast_expression "(int)&param_3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&param_3" & identifier)) + number_literal) ))) ;) (expression_statement "param_3 = lVar1;" (assignment_expression "param_3 = lVar1" identifier = identifier) ;) (expression_statement "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3);" (call_expression "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x3522a8))" ( (pointer_expression "**(code **)(in_t9 + 0x3522a8)" * (pointer_expression "*(code **)(in_t9 + 0x3522a8)" * (cast_expression "(code **)(in_t9 + 0x3522a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3522a8)" ( (binary_expression "in_t9 + 0x3522a8" identifier + number_literal) ))))) )) (argument_list "(10,*puVar3)" ( number_literal , (pointer_expression "*puVar3" * identifier) ))) ;) (labeled_statement "Errors::increment_counter(this_00,(int *)(this_00 + 0x20));" statement_identifier : (ERROR ":" :) (expression_statement "increment_counter(this_00,(int *)(this_00 + 0x20));" (call_expression "increment_counter(this_00,(int *)(this_00 + 0x20))" identifier (argument_list "(this_00,(int *)(this_00 + 0x20))" ( identifier , (cast_expression "(int *)(this_00 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x20)" ( (binary_expression "this_00 + 0x20" identifier + number_literal) ))) ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : :) IDENT (ERROR < LIT) , (ERROR (function_declarator IDENT (ERROR >) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (variadic_parameter ...) ))) { IDENT) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , (field_expression IDENT . field_identifier) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (pointer_expression * IDENT) ))) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;)) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\ngold::gold_warning_at_location<64,false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong lVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "gold_warning_at_location") (ERROR "<64" (< "<") (number_literal "64")) (, ",") (ERROR "false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)\n\n{\n  longlong" (function_declarator "false>\n          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)" (identifier "false") (ERROR ">" (> ">")) (parameter_list "(gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)" (( "(") (parameter_declaration "gold *this" (type_identifier "gold") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Relocate_info *param_1" (type_identifier "Relocate_info") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "longlong param_3" (type_identifier "longlong") (identifier "param_3")) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (variadic_parameter "..." (... "...")) () ")"))) ({ "{") (identifier "longlong")) (identifier "lVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "Errors *this_00;" (type_identifier "Errors") (pointer_declarator "*this_00" (* "*") (identifier "this_00")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int in_t9;" (primitive_type "int") (identifier "in_t9") (; ";")) (declaration "undefined1 *local_48 [2];" (type_identifier "undefined1") (pointer_declarator "*local_48 [2]" (* "*") (array_declarator "local_48 [2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 auStack_40 [16];" (type_identifier "undefined1") (array_declarator "auStack_40 [16]" (identifier "auStack_40") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (expression_statement "puVar3 = *(undefined4 **)(in_t9 + 0x35233c);" (assignment_expression "puVar3 = *(undefined4 **)(in_t9 + 0x35233c)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(in_t9 + 0x35233c)" (* "*") (cast_expression "(undefined4 **)(in_t9 + 0x35233c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x35233c)" (( "(") (binary_expression "in_t9 + 0x35233c" (identifier "in_t9") (+ "+") (number_literal "0x35233c")) () ")"))))) (; ";")) (expression_statement "uVar4 = *puVar3;" (assignment_expression "uVar4 = *puVar3" (identifier "uVar4") (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);" (assignment_expression "this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" (identifier "this_00") (= "=") (pointer_expression "*(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" (* "*") (cast_expression "(Errors **)**(undefined4 **)(in_t9 + 0x34e144)" (( "(") (type_descriptor "Errors **" (type_identifier "Errors") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "**(undefined4 **)(in_t9 + 0x34e144)" (* "*") (pointer_expression "*(undefined4 **)(in_t9 + 0x34e144)" (* "*") (cast_expression "(undefined4 **)(in_t9 + 0x34e144)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x34e144)" (( "(") (binary_expression "in_t9 + 0x34e144" (identifier "in_t9") (+ "+") (number_literal "0x34e144")) () ")")))))))) (; ";")) (expression_statement "local_30 = (int)&param_3 + 4;" (assignment_expression "local_30 = (int)&param_3 + 4" (identifier "local_30") (= "=") (binary_expression "(int)&param_3 + 4" (cast_expression "(int)&param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3" (& "&") (identifier "param_3"))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);" (assignment_expression "uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" (parenthesized_expression "(**(code **)(in_t9 + 0x3523c0))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x3523c0)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x3523c0)" (* "*") (cast_expression "(code **)(in_t9 + 0x3523c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x3523c0)" (( "(") (binary_expression "in_t9 + 0x3523c0" (identifier "in_t9") (+ "+") (number_literal "0x3523c0")) () ")"))))) () ")")) (argument_list "(*(int *)(in_t9 + 0x34e1e0) + -0x3b8)" (( "(") (binary_expression "*(int *)(in_t9 + 0x34e1e0) + -0x3b8" (pointer_expression "*(int *)(in_t9 + 0x34e1e0)" (* "*") (cast_expression "(int *)(in_t9 + 0x34e1e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x34e1e0)" (( "(") (binary_expression "in_t9 + 0x34e1e0" (identifier "in_t9") (+ "+") (number_literal "0x34e1e0")) () ")")))) (+ "+") (number_literal "-0x3b8")) () ")")))) (; ";")) (expression_statement "(**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1);" (call_expression "(**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1)" (parenthesized_expression "(**(code **)(in_t9 + 0x34fefc))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x34fefc)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x34fefc)" (* "*") (cast_expression "(code **)(in_t9 + 0x34fefc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x34fefc)" (( "(") (binary_expression "in_t9 + 0x34fefc" (identifier "in_t9") (+ "+") (number_literal "0x34fefc")) () ")"))))) () ")")) (argument_list "(local_48,this,param_1)" (( "(") (identifier "local_48") (, ",") (identifier "this") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);" (call_expression "(**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0])" (parenthesized_expression "(**(code **)(in_t9 + 0x3522d8))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x3522d8)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x3522d8)" (* "*") (cast_expression "(code **)(in_t9 + 0x3522d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x3522d8)" (( "(") (binary_expression "in_t9 + 0x3522d8" (identifier "in_t9") (+ "+") (number_literal "0x3522d8")) () ")"))))) () ")")) (argument_list "(uVar4,uVar2,local_48[0])" (( "(") (identifier "uVar4") (, ",") (identifier "uVar2") (, ",") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "lVar1 = param_3;" (assignment_expression "lVar1 = param_3" (identifier "lVar1") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (local_48[0] != auStack_40) {\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }" (if "if") (parenthesized_expression "(local_48[0] != auStack_40)" (( "(") (binary_expression "local_48[0] != auStack_40" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_40")) () ")")) (compound_statement "{\n    (**(code **)(in_t9 + 0x34da8c))();\n    lVar1 = param_3;\n  }" ({ "{") (expression_statement "(**(code **)(in_t9 + 0x34da8c))();" (call_expression "(**(code **)(in_t9 + 0x34da8c))()" (parenthesized_expression "(**(code **)(in_t9 + 0x34da8c))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x34da8c)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x34da8c)" (* "*") (cast_expression "(code **)(in_t9 + 0x34da8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x34da8c)" (( "(") (binary_expression "in_t9 + 0x34da8c" (identifier "in_t9") (+ "+") (number_literal "0x34da8c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar1 = param_3;" (assignment_expression "lVar1 = param_3" (identifier "lVar1") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20);" (assignment_expression "param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20)" (field_expression "param_3._0_4_" (identifier "param_3") (. ".") (field_identifier "_0_4_")) (= "=") (call_expression "(undefined4)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)lVar1 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar1")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "(**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4);" (call_expression "(**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4)" (parenthesized_expression "(**(code **)(in_t9 + 0x352248))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x352248)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x352248)" (* "*") (cast_expression "(code **)(in_t9 + 0x352248)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x352248)" (( "(") (binary_expression "in_t9 + 0x352248" (identifier "in_t9") (+ "+") (number_literal "0x352248")) () ")"))))) () ")")) (argument_list "(*puVar3,param_3._0_4_,(int)&param_3 + 4)" (( "(") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (, ",") (field_expression "param_3._0_4_" (identifier "param_3") (. ".") (field_identifier "_0_4_")) (, ",") (binary_expression "(int)&param_3 + 4" (cast_expression "(int)&param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&param_3" (& "&") (identifier "param_3"))) (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "param_3 = lVar1;" (assignment_expression "param_3 = lVar1" (identifier "param_3") (= "=") (identifier "lVar1")) (; ";")) (expression_statement "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3);" (call_expression "(**(code **)(in_t9 + 0x3522a8))(10,*puVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x3522a8))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x3522a8)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x3522a8)" (* "*") (cast_expression "(code **)(in_t9 + 0x3522a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x3522a8)" (( "(") (binary_expression "in_t9 + 0x3522a8" (identifier "in_t9") (+ "+") (number_literal "0x3522a8")) () ")"))))) () ")")) (argument_list "(10,*puVar3)" (( "(") (number_literal "10") (, ",") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) () ")"))) (; ";")) (labeled_statement "Errors::increment_counter(this_00,(int *)(this_00 + 0x20));" (statement_identifier "Errors") (: ":") (ERROR ":" (: ":")) (expression_statement "increment_counter(this_00,(int *)(this_00 + 0x20));" (call_expression "increment_counter(this_00,(int *)(this_00 + 0x20))" (identifier "increment_counter") (argument_list "(this_00,(int *)(this_00 + 0x20))" (( "(") (identifier "this_00") (, ",") (cast_expression "(int *)(this_00 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x20)" (( "(") (binary_expression "this_00 + 0x20" (identifier "this_00") (+ "+") (number_literal "0x20")) () ")"))) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier)) declarator: (identifier) (ERROR (number_literal)) (ERROR (function_declarator declarator: (identifier) (ERROR) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (variadic_parameter))) (identifier)) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (field_expression argument: (identifier) field: (field_identifier)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (return_statement) (ERROR))

/* void gold::gold_warning_at_location<64, false>(gold::Relocate_info<64, false> const*, unsigned
   int, long long, char const*, ...) */

void __thiscall
gold::MASKED
          (gold *this,Relocate_info *param_1,uint param_2,longlong param_3,char *param_4,...)

{
  longlong lVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  Errors *this_00;
  undefined4 uVar4;
  int in_t9;
  undefined1 *local_48 [2];
  undefined1 auStack_40 [16];
  int local_30;
  
  puVar3 = *(undefined4 **)(in_t9 + 0x35233c);
  uVar4 = *puVar3;
  this_00 = *(Errors **)**(undefined4 **)(in_t9 + 0x34e144);
  local_30 = (int)&param_3 + 4;
  uVar2 = (**(code **)(in_t9 + 0x3523c0))(*(int *)(in_t9 + 0x34e1e0) + -0x3b8);
  (**(code **)(in_t9 + 0x34fefc))(local_48,this,param_1);
                    /* try { // try from 00173918 to 0017391f has its CatchHandler @ 001739a8 */
  (**(code **)(in_t9 + 0x3522d8))(uVar4,uVar2,local_48[0]);
  lVar1 = param_3;
  if (local_48[0] != auStack_40) {
    (**(code **)(in_t9 + 0x34da8c))();
    lVar1 = param_3;
  }
  param_3._0_4_ = (undefined4)((ulonglong)lVar1 >> 0x20);
  (**(code **)(in_t9 + 0x352248))(*puVar3,param_3._0_4_,(int)&param_3 + 4);
  param_3 = lVar1;
  (**(code **)(in_t9 + 0x3522a8))(10,*puVar3);
  Errors::increment_counter(this_00,(int *)(this_00 + 0x20));
  return;
}

