
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: bool handle_gnu_warning_section(Object * this, char * name, uint shndx,
   Symbol_table * symtab) */

bool __thiscall
gold::Object::handle_gnu_warning_section(Object *this,char *name,uint shndx,Symbol_table *symtab)

{
  int iVar1;
  char *pcVar2;
  char *pcVar3;
  string warning;
  char warn_prefix [14];
  section_size_type len;
  char *local_20;
  
  warn_prefix._0_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);
  warn_prefix._4_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);
  warn_prefix._8_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);
  warn_prefix._12_2_ = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);
  iVar1 = (*(code *)PTR_strncmp_004366a0)(name,warn_prefix,0xd);
  if (iVar1 != 0) {
    return false;
  }
  pcVar3 = name + 0xd;
  pcVar2 = (char *)(*this->_vptr_Object[0xe])(this,shndx,&len,0);
  if (len == 0) {
    local_20 = pcVar3;
    len = (*(code *)PTR_strlen_0043677c)(pcVar3);
    pcVar2 = local_20;
  }
  warning._M_dataplus._M_p = (pointer)&warning.field_2;
  (*(code *)PTR__M_construct<char_const*>_00432488)(&warning,pcVar2,pcVar2 + len,0);
                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */
  (*(code *)PTR_add_warning_00434394)(&symtab->warnings_,symtab,pcVar3,this,&warning);
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)warning._M_dataplus._M_p != &warning.field_2) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return true;
}



/* gold::Object::handle_gnu_warning_section(char const*, unsigned int, gold::Symbol_table*) */

undefined4 __thiscall
gold::Object::handle_gnu_warning_section
          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)

{
  int iVar1;
  char *pcVar2;
  char *pcVar3;
  undefined1 *local_50 [2];
  undefined1 auStack_48 [16];
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined2 local_2c;
  int local_28 [2];
  char *local_20;
  
  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);
  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);
  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);
  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);
  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);
  if (iVar1 != 0) {
    return 0;
  }
  pcVar3 = param_1 + 0xd;
  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);
  if (local_28[0] == 0) {
    local_20 = pcVar3;
    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);
    pcVar2 = local_20;
  }
  local_50[0] = auStack_48;
  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);
                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */
  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);
  if (local_50[0] != auStack_48) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return 1;
}


lui gp,0x30
addiu gp,gp,-0x3c28
addu gp,gp,t9
lw v1,-0x7e1c(gp)
addiu sp,sp,-0x70
lw t9,-0x3b30(gp)
addiu v0,v1,-0xf4c
sw s3,0x64(sp)
sw s0,0x58(sp)
or s3,a2,zero
sw s2,0x60(sp)
or s0,a1,zero
sw s1,0x5c(sp)
addiu a1,sp,0x38
sw gp,0x18(sp)
li a2,0xd
sw ra,0x6c(sp)
or s1,a0,zero
sw s4,0x68(sp)
or a0,s0,zero
lw t1,-0xf4c(v1)
or s2,a3,zero
lw t0,0x4(v0)
lw v1,0x8(v0)
lhu v0,0xc(v0)
sw t1,0x38(sp)
sw t0,0x3c(sp)
sw v1,0x40(sp)
jalr t9
_sh v0,0x44(sp)
beq v0,zero,0x0013de98
_lw ra,0x6c(sp)
or v0,zero,zero
lw s4,0x68(sp)
lw s3,0x64(sp)
lw s2,0x60(sp)
lw s1,0x5c(sp)
lw s0,0x58(sp)
jr ra
_addiu sp,sp,0x70
lw v0,0x0(s1)
addiu a2,sp,0x48
or a3,zero,zero
or a1,s3,zero
or a0,s1,zero
lw t9,0x38(v0)
jalr t9
_addiu s0,s0,0xd
lw a2,0x48(sp)
or a1,v0,zero
beq a2,zero,0x0013df48
_lw gp,0x18(sp)
or a3,zero,zero
lw t9,-0x7d48(gp)
addiu s3,sp,0x20
addiu s4,sp,0x28
addu a2,a1,a2
sll a3,a3,0x18
sw s4,0x20(sp)
jalr t9
_or a0,s3,zero
addiu a0,s2,0x10c
lw gp,0x18(sp)
or a3,s1,zero
sw s3,0x10(sp)
or a2,s0,zero
lw t9,-0x5e3c(gp)
jalr t9
_or a1,s2,zero
lw a0,0x20(sp)
beq a0,s4,0x0013df24
_lw gp,0x18(sp)
lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x6c(sp)
li v0,0x1
lw s4,0x68(sp)
lw s3,0x64(sp)
lw s2,0x60(sp)
lw s1,0x5c(sp)
lw s0,0x58(sp)
jr ra
_addiu sp,sp,0x70
lw t9,-0x3a54(gp)
or a0,s0,zero
jalr t9
_sw s0,0x50(sp)
lw gp,0x18(sp)
or a2,v0,zero
lw a1,0x50(sp)
b 0x0013dec8
_sw v0,0x48(sp)
(translation_unit "/* gold::Object::handle_gnu_warning_section(char const*, unsigned int, gold::Symbol_table*) */\n\nundefined4 __thiscall\ngold::Object::handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)\n\n{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */\n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}\n\n" comment (function_definition "undefined4 __thiscall\ngold::Object::handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)\n\n{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */\n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Object::" identifier : : identifier : :) (function_declarator "handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)" identifier (parameter_list "(Object *this,char *param_1,uint param_2,Symbol_table *param_3)" ( (parameter_declaration "Object *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "Symbol_table *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */\n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined1 *local_50 [2];" type_identifier (pointer_declarator "*local_50 [2]" * (array_declarator "local_50 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_48 [16];" type_identifier (array_declarator "auStack_48 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined2 local_2c;" type_identifier identifier ;) (declaration "int local_28 [2];" primitive_type (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (declaration "char *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (expression_statement "local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);" (assignment_expression "local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf4c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf4c" identifier + number_literal) ))))) ;) (expression_statement "local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);" (assignment_expression "local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf48)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf48" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);" (assignment_expression "local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf44)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf44" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);" (assignment_expression "local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" identifier = (pointer_expression "*(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" * (cast_expression "(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf40)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf40" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);" (assignment_expression "iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_38,0xd)" ( identifier , (pointer_expression "&local_38" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar3 = param_1 + 0xd;" (assignment_expression "pcVar3 = param_1 + 0xd" identifier = (binary_expression "param_1 + 0xd" identifier + number_literal)) ;) (expression_statement "pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);" (assignment_expression "pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" identifier = (cast_expression "(char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" (parenthesized_expression "(**(code **)(*(int *)this + 0x38))" ( (pointer_expression "**(code **)(*(int *)this + 0x38)" * (pointer_expression "*(code **)(*(int *)this + 0x38)" * (cast_expression "(code **)(*(int *)this + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x38)" ( (binary_expression "*(int *)this + 0x38" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(this,param_2,local_28,0)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" if (parenthesized_expression "(local_28[0] == 0)" ( (binary_expression "local_28[0] == 0" (subscript_expression "local_28[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" { (expression_statement "local_20 = pcVar3;" (assignment_expression "local_20 = pcVar3" identifier = identifier) ;) (expression_statement "local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);" (assignment_expression "local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3)" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (call_expression "(*(code *)PTR_strlen_0043677c)(pcVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" ( (pointer_expression "*(code *)PTR_strlen_0043677c" * (cast_expression "(code *)PTR_strlen_0043677c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar2 = local_20;" (assignment_expression "pcVar2 = local_20" identifier = identifier) ;) })) (expression_statement "local_50[0] = auStack_48;" (assignment_expression "local_50[0] = auStack_48" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(local_50,pcVar2,pcVar2 + local_28[0],0)" ( identifier , identifier , (binary_expression "pcVar2 + local_28[0]" identifier + (subscript_expression "local_28[0]" identifier [ number_literal ])) , number_literal ))) ;) comment (expression_statement "(*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);" (call_expression "(*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50)" (parenthesized_expression "(*(code *)PTR_add_warning_00434394)" ( (pointer_expression "*(code *)PTR_add_warning_00434394" * (cast_expression "(code *)PTR_add_warning_00434394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3 + 0x10c,param_3,pcVar3,this,local_50)" ( (binary_expression "param_3 + 0x10c" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_50[0] != auStack_48)" ( (binary_expression "local_50[0] != auStack_48" (subscript_expression "local_50[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: bool handle_gnu_warning_section(Object * this, char * name, uint shndx,\n   Symbol_table * symtab) */\n\nbool __thiscall\ngold::Object::handle_gnu_warning_section(Object *this,char *name,uint shndx,Symbol_table *symtab)\n\n{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  string warning;\n  char warn_prefix [14];\n  section_size_type len;\n  char *local_20;\n  \n  warn_prefix._0_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  warn_prefix._4_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  warn_prefix._8_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  warn_prefix._12_2_ = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(name,warn_prefix,0xd);\n  if (iVar1 != 0) {\n    return false;\n  }\n  pcVar3 = name + 0xd;\n  pcVar2 = (char *)(*this->_vptr_Object[0xe])(this,shndx,&len,0);\n  if (len == 0) {\n    local_20 = pcVar3;\n    len = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  warning._M_dataplus._M_p = (pointer)&warning.field_2;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(&warning,pcVar2,pcVar2 + len,0);\n                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */\n  (*(code *)PTR_add_warning_00434394)(&symtab->warnings_,symtab,pcVar3,this,&warning);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)warning._M_dataplus._M_p != &warning.field_2) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return true;\n}\n\n" comment comment comment (function_definition "bool __thiscall\ngold::Object::handle_gnu_warning_section(Object *this,char *name,uint shndx,Symbol_table *symtab)\n\n{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  string warning;\n  char warn_prefix [14];\n  section_size_type len;\n  char *local_20;\n  \n  warn_prefix._0_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  warn_prefix._4_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  warn_prefix._8_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  warn_prefix._12_2_ = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(name,warn_prefix,0xd);\n  if (iVar1 != 0) {\n    return false;\n  }\n  pcVar3 = name + 0xd;\n  pcVar2 = (char *)(*this->_vptr_Object[0xe])(this,shndx,&len,0);\n  if (len == 0) {\n    local_20 = pcVar3;\n    len = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  warning._M_dataplus._M_p = (pointer)&warning.field_2;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(&warning,pcVar2,pcVar2 + len,0);\n                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */\n  (*(code *)PTR_add_warning_00434394)(&symtab->warnings_,symtab,pcVar3,this,&warning);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)warning._M_dataplus._M_p != &warning.field_2) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return true;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Object::" identifier : : identifier : :) (function_declarator "handle_gnu_warning_section(Object *this,char *name,uint shndx,Symbol_table *symtab)" identifier (parameter_list "(Object *this,char *name,uint shndx,Symbol_table *symtab)" ( (parameter_declaration "Object *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  string warning;\n  char warn_prefix [14];\n  section_size_type len;\n  char *local_20;\n  \n  warn_prefix._0_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  warn_prefix._4_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  warn_prefix._8_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  warn_prefix._12_2_ = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(name,warn_prefix,0xd);\n  if (iVar1 != 0) {\n    return false;\n  }\n  pcVar3 = name + 0xd;\n  pcVar2 = (char *)(*this->_vptr_Object[0xe])(this,shndx,&len,0);\n  if (len == 0) {\n    local_20 = pcVar3;\n    len = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  warning._M_dataplus._M_p = (pointer)&warning.field_2;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(&warning,pcVar2,pcVar2 + len,0);\n                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */\n  (*(code *)PTR_add_warning_00434394)(&symtab->warnings_,symtab,pcVar3,this,&warning);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)warning._M_dataplus._M_p != &warning.field_2) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return true;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "string warning;" type_identifier identifier ;) (declaration "char warn_prefix [14];" primitive_type (array_declarator "warn_prefix [14]" identifier [ number_literal ]) ;) (declaration "section_size_type len;" type_identifier identifier ;) (declaration "char *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (expression_statement "warn_prefix._0_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);" (assignment_expression "warn_prefix._0_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" (field_expression "warn_prefix._0_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf4c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf4c" identifier + number_literal) ))))) ;) (expression_statement "warn_prefix._4_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);" (assignment_expression "warn_prefix._4_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" (field_expression "warn_prefix._4_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf48)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf48" identifier + number_literal) ))))) ;) (expression_statement "warn_prefix._8_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);" (assignment_expression "warn_prefix._8_4_ = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" (field_expression "warn_prefix._8_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf44)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf44" identifier + number_literal) ))))) ;) (expression_statement "warn_prefix._12_2_ = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);" (assignment_expression "warn_prefix._12_2_ = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" (field_expression "warn_prefix._12_2_" identifier . field_identifier) = (pointer_expression "*(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" * (cast_expression "(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf40)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf40" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (*(code *)PTR_strncmp_004366a0)(name,warn_prefix,0xd);" (assignment_expression "iVar1 = (*(code *)PTR_strncmp_004366a0)(name,warn_prefix,0xd)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(name,warn_prefix,0xd)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(name,warn_prefix,0xd)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "pcVar3 = name + 0xd;" (assignment_expression "pcVar3 = name + 0xd" identifier = (binary_expression "name + 0xd" identifier + number_literal)) ;) (expression_statement "pcVar2 = (char *)(*this->_vptr_Object[0xe])(this,shndx,&len,0);" (assignment_expression "pcVar2 = (char *)(*this->_vptr_Object[0xe])(this,shndx,&len,0)" identifier = (cast_expression "(char *)(*this->_vptr_Object[0xe])(this,shndx,&len,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*this->_vptr_Object[0xe])(this,shndx,&len,0)" (parenthesized_expression "(*this->_vptr_Object[0xe])" ( (pointer_expression "*this->_vptr_Object[0xe]" * (subscript_expression "this->_vptr_Object[0xe]" (field_expression "this->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(this,shndx,&len,0)" ( identifier , identifier , (pointer_expression "&len" & identifier) , number_literal ))))) ;) (if_statement "if (len == 0) {\n    local_20 = pcVar3;\n    len = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" if (parenthesized_expression "(len == 0)" ( (binary_expression "len == 0" identifier == number_literal) )) (compound_statement "{\n    local_20 = pcVar3;\n    len = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" { (expression_statement "local_20 = pcVar3;" (assignment_expression "local_20 = pcVar3" identifier = identifier) ;) (expression_statement "len = (*(code *)PTR_strlen_0043677c)(pcVar3);" (assignment_expression "len = (*(code *)PTR_strlen_0043677c)(pcVar3)" identifier = (call_expression "(*(code *)PTR_strlen_0043677c)(pcVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" ( (pointer_expression "*(code *)PTR_strlen_0043677c" * (cast_expression "(code *)PTR_strlen_0043677c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar2 = local_20;" (assignment_expression "pcVar2 = local_20" identifier = identifier) ;) })) (expression_statement "warning._M_dataplus._M_p = (pointer)&warning.field_2;" (assignment_expression "warning._M_dataplus._M_p = (pointer)&warning.field_2" (field_expression "warning._M_dataplus._M_p" (field_expression "warning._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&warning.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "warning.field_2" identifier . field_identifier))) ;) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(&warning,pcVar2,pcVar2 + len,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(&warning,pcVar2,pcVar2 + len,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(&warning,pcVar2,pcVar2 + len,0)" ( (pointer_expression "&warning" & identifier) , identifier , (binary_expression "pcVar2 + len" identifier + identifier) , number_literal ))) ;) comment (expression_statement "(*(code *)PTR_add_warning_00434394)(&symtab->warnings_,symtab,pcVar3,this,&warning);" (call_expression "(*(code *)PTR_add_warning_00434394)(&symtab->warnings_,symtab,pcVar3,this,&warning)" (parenthesized_expression "(*(code *)PTR_add_warning_00434394)" ( (pointer_expression "*(code *)PTR_add_warning_00434394" * (cast_expression "(code *)PTR_add_warning_00434394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&symtab->warnings_,symtab,pcVar3,this,&warning)" ( (pointer_expression "&symtab->warnings_" & (field_expression "symtab->warnings_" identifier -> field_identifier)) , identifier , identifier , identifier , (pointer_expression "&warning" & identifier) ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)warning._M_dataplus._M_p != &warning.field_2) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)warning._M_dataplus._M_p != &warning.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)warning._M_dataplus._M_p != &warning.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)warning._M_dataplus._M_p != &warning.field_2" (binary_expression "allocator<char>_>_9\n       *)warning._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)warning._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "warning._M_dataplus._M_p" (field_expression "warning._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&warning.field_2" & (field_expression "warning.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return true;" return true ;) })))
(translation_unit "undefined4 __thiscall\ngold::Object::handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)\n\n{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    \n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 __thiscall\ngold::Object::handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)\n\n{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    \n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Object::" identifier : : identifier : :) (function_declarator "handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)" identifier (parameter_list "(Object *this,char *param_1,uint param_2,Symbol_table *param_3)" ( (parameter_declaration "Object *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "Symbol_table *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    \n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined1 *local_50 [2];" type_identifier (pointer_declarator "*local_50 [2]" * (array_declarator "local_50 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_48 [16];" type_identifier (array_declarator "auStack_48 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined2 local_2c;" type_identifier identifier ;) (declaration "int local_28 [2];" primitive_type (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (declaration "char *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (expression_statement "local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);" (assignment_expression "local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf4c)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf4c" identifier + number_literal) ))))) ;) (expression_statement "local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);" (assignment_expression "local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf48)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf48" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);" (assignment_expression "local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" * (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf44)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf44" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);" (assignment_expression "local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" identifier = (pointer_expression "*(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" * (cast_expression "(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf40)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf40" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);" (assignment_expression "iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd)" identifier = (call_expression "(*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" ( (pointer_expression "*(code *)PTR_strncmp_004366a0" * (cast_expression "(code *)PTR_strncmp_004366a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_38,0xd)" ( identifier , (pointer_expression "&local_38" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar3 = param_1 + 0xd;" (assignment_expression "pcVar3 = param_1 + 0xd" identifier = (binary_expression "param_1 + 0xd" identifier + number_literal)) ;) (expression_statement "pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);" (assignment_expression "pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" identifier = (cast_expression "(char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" (parenthesized_expression "(**(code **)(*(int *)this + 0x38))" ( (pointer_expression "**(code **)(*(int *)this + 0x38)" * (pointer_expression "*(code **)(*(int *)this + 0x38)" * (cast_expression "(code **)(*(int *)this + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x38)" ( (binary_expression "*(int *)this + 0x38" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(this,param_2,local_28,0)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" if (parenthesized_expression "(local_28[0] == 0)" ( (binary_expression "local_28[0] == 0" (subscript_expression "local_28[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" { (expression_statement "local_20 = pcVar3;" (assignment_expression "local_20 = pcVar3" identifier = identifier) ;) (expression_statement "local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);" (assignment_expression "local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3)" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (call_expression "(*(code *)PTR_strlen_0043677c)(pcVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" ( (pointer_expression "*(code *)PTR_strlen_0043677c" * (cast_expression "(code *)PTR_strlen_0043677c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar2 = local_20;" (assignment_expression "pcVar2 = local_20" identifier = identifier) ;) })) (expression_statement "local_50[0] = auStack_48;" (assignment_expression "local_50[0] = auStack_48" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(local_50,pcVar2,pcVar2 + local_28[0],0)" ( identifier , identifier , (binary_expression "pcVar2 + local_28[0]" identifier + (subscript_expression "local_28[0]" identifier [ number_literal ])) , number_literal ))) ;) (expression_statement "(*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);" (call_expression "(*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50)" (parenthesized_expression "(*(code *)PTR_add_warning_00434394)" ( (pointer_expression "*(code *)PTR_add_warning_00434394" * (cast_expression "(code *)PTR_add_warning_00434394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3 + 0x10c,param_3,pcVar3,this,local_50)" ( (binary_expression "param_3 + 0x10c" identifier + number_literal) , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_50[0] != auStack_48)" ( (binary_expression "local_50[0] != auStack_48" (subscript_expression "local_50[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) (ERROR *) > IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 __thiscall\ngold::Object::handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)\n\n{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    \n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}" (type_identifier "undefined4") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Object::" (identifier "gold") (: ":") (: ":") (identifier "Object") (: ":") (: ":")) (function_declarator "handle_gnu_warning_section\n          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)" (identifier "handle_gnu_warning_section") (parameter_list "(Object *this,char *param_1,uint param_2,Symbol_table *param_3)" (( "(") (parameter_declaration "Object *this" (type_identifier "Object") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "Symbol_table *param_3" (type_identifier "Symbol_table") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  char *pcVar3;\n  undefined1 *local_50 [2];\n  undefined1 auStack_48 [16];\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined2 local_2c;\n  int local_28 [2];\n  char *local_20;\n  \n  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);\n  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);\n  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);\n  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);\n  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  pcVar3 = param_1 + 0xd;\n  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);\n  if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }\n  local_50[0] = auStack_48;\n  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);\n                    \n  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);\n  if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined1 *local_50 [2];" (type_identifier "undefined1") (pointer_declarator "*local_50 [2]" (* "*") (array_declarator "local_50 [2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 auStack_48 [16];" (type_identifier "undefined1") (array_declarator "auStack_48 [16]" (identifier "auStack_48") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined2 local_2c;" (type_identifier "undefined2") (identifier "local_2c") (; ";")) (declaration "int local_28 [2];" (primitive_type "int") (array_declarator "local_28 [2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "char *local_20;" (primitive_type "char") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (expression_statement "local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);" (assignment_expression "local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" (identifier "local_38") (= "=") (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" (* "*") (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf4c)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf4c" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0xf4c")) () ")"))))) (; ";")) (expression_statement "local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);" (assignment_expression "local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" (identifier "local_34") (= "=") (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" (* "*") (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf48)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf48" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0xf48")) () ")"))))) (; ";")) (expression_statement "local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);" (assignment_expression "local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" (identifier "local_30") (= "=") (pointer_expression "*(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" (* "*") (cast_expression "(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf44)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf44" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0xf44")) () ")"))))) (; ";")) (expression_statement "local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);" (assignment_expression "local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" (* "*") (cast_expression "(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0xf40)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0xf40" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0xf40")) () ")"))))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);" (assignment_expression "iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd)" (parenthesized_expression "(*(code *)PTR_strncmp_004366a0)" (( "(") (pointer_expression "*(code *)PTR_strncmp_004366a0" (* "*") (cast_expression "(code *)PTR_strncmp_004366a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncmp_004366a0"))) () ")")) (argument_list "(param_1,&local_38,0xd)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (number_literal "0xd") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar3 = param_1 + 0xd;" (assignment_expression "pcVar3 = param_1 + 0xd" (identifier "pcVar3") (= "=") (binary_expression "param_1 + 0xd" (identifier "param_1") (+ "+") (number_literal "0xd"))) (; ";")) (expression_statement "pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);" (assignment_expression "pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" (identifier "pcVar2") (= "=") (cast_expression "(char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0)" (parenthesized_expression "(**(code **)(*(int *)this + 0x38))" (( "(") (pointer_expression "**(code **)(*(int *)this + 0x38)" (* "*") (pointer_expression "*(code **)(*(int *)this + 0x38)" (* "*") (cast_expression "(code **)(*(int *)this + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)this + 0x38)" (( "(") (binary_expression "*(int *)this + 0x38" (pointer_expression "*(int *)this" (* "*") (cast_expression "(int *)this" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(this,param_2,local_28,0)" (( "(") (identifier "this") (, ",") (identifier "param_2") (, ",") (identifier "local_28") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (local_28[0] == 0) {\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" (if "if") (parenthesized_expression "(local_28[0] == 0)" (( "(") (binary_expression "local_28[0] == 0" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_20 = pcVar3;\n    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);\n    pcVar2 = local_20;\n  }" ({ "{") (expression_statement "local_20 = pcVar3;" (assignment_expression "local_20 = pcVar3" (identifier "local_20") (= "=") (identifier "pcVar3")) (; ";")) (expression_statement "local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);" (assignment_expression "local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3)" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(*(code *)PTR_strlen_0043677c)(pcVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0043677c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0043677c" (* "*") (cast_expression "(code *)PTR_strlen_0043677c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0043677c"))) () ")")) (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "pcVar2 = local_20;" (assignment_expression "pcVar2 = local_20" (identifier "pcVar2") (= "=") (identifier "local_20")) (; ";")) (} "}"))) (expression_statement "local_50[0] = auStack_48;" (assignment_expression "local_50[0] = auStack_48" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "auStack_48")) (; ";")) (expression_statement "(*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_00432488)" (( "(") (binary_expression "*(code *)PTR__M_construct<char_const*>_00432488" (binary_expression "*(code *)PTR__M_construct<char_const" (pointer_expression "*(code *)PTR__M_construct" (* "*") (cast_expression "(code *)PTR__M_construct" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_construct"))) (< "<") (identifier "char_const")) (ERROR "*" (* "*")) (> ">") (identifier "_00432488")) () ")")) (argument_list "(local_50,pcVar2,pcVar2 + local_28[0],0)" (( "(") (identifier "local_50") (, ",") (identifier "pcVar2") (, ",") (binary_expression "pcVar2 + local_28[0]" (identifier "pcVar2") (+ "+") (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);" (call_expression "(*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50)" (parenthesized_expression "(*(code *)PTR_add_warning_00434394)" (( "(") (pointer_expression "*(code *)PTR_add_warning_00434394" (* "*") (cast_expression "(code *)PTR_add_warning_00434394" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_add_warning_00434394"))) () ")")) (argument_list "(param_3 + 0x10c,param_3,pcVar3,this,local_50)" (( "(") (binary_expression "param_3 + 0x10c" (identifier "param_3") (+ "+") (number_literal "0x10c")) (, ",") (identifier "param_3") (, ",") (identifier "pcVar3") (, ",") (identifier "this") (, ",") (identifier "local_50") () ")"))) (; ";")) (if_statement "if (local_50[0] != auStack_48) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" (if "if") (parenthesized_expression "(local_50[0] != auStack_48)" (( "(") (binary_expression "local_50[0] != auStack_48" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_48")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)) (ERROR) right: (identifier))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (return_statement (number_literal)))))

/* gold::Object::MASKED(char const*, unsigned int, gold::Symbol_table*) */

undefined4 __thiscall
gold::Object::MASKED
          (Object *this,char *param_1,uint param_2,Symbol_table *param_3)

{
  int iVar1;
  char *pcVar2;
  char *pcVar3;
  undefined1 *local_50 [2];
  undefined1 auStack_48 [16];
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined2 local_2c;
  int local_28 [2];
  char *local_20;
  
  local_38 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf4c);
  local_34 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf48);
  local_30 = *(undefined4 *)(PTR_s_alize_xindex_004323b4 + -0xf44);
  local_2c = *(undefined2 *)(PTR_s_alize_xindex_004323b4 + -0xf40);
  iVar1 = (*(code *)PTR_strncmp_004366a0)(param_1,&local_38,0xd);
  if (iVar1 != 0) {
    return 0;
  }
  pcVar3 = param_1 + 0xd;
  pcVar2 = (char *)(**(code **)(*(int *)this + 0x38))(this,param_2,local_28,0);
  if (local_28[0] == 0) {
    local_20 = pcVar3;
    local_28[0] = (*(code *)PTR_strlen_0043677c)(pcVar3);
    pcVar2 = local_20;
  }
  local_50[0] = auStack_48;
  (*(code *)PTR__M_construct<char_const*>_00432488)(local_50,pcVar2,pcVar2 + local_28[0],0);
                    /* try { // try from 0013df04 to 0013df0b has its CatchHandler @ 0013df6c */
  (*(code *)PTR_add_warning_00434394)(param_3 + 0x10c,param_3,pcVar3,this,local_50);
  if (local_50[0] != auStack_48) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return 1;
}

