
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void gold::Symbol_table::report_resolve_problem
               (bool is_error,char *msg,Symbol *to,Defined defined,Object *object)

{
  uint __maxlen;
  size_t sVar1;
  char *__s;
  pointer pcVar2;
  pointer ppOVar3;
  string demangled;
  
  Symbol::demangled_name(to);
  sVar1 = strlen(msg);
  __maxlen = sVar1 + 10 + demangled._M_string_length;
                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */
  __s = (char *)operator_new__(__maxlen);
  snprintf(__s,__maxlen,msg,demangled._M_dataplus._M_p);
  switch(defined) {
  case OBJECT:
    pcVar2 = (object->name_)._M_dataplus._M_p;
    break;
  case COPY:
    pcVar2 = (pointer)gettext("COPY reloc");
    break;
  case DEFSYM:
  case UNDEFINED:
    pcVar2 = (pointer)gettext("command line");
    break;
  case SCRIPT:
    pcVar2 = (pointer)gettext("linker script");
    break;
  case PREDEFINED:
  case INCREMENTAL_BASE:
    pcVar2 = (pointer)gettext("linker defined");
    break;
  default:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");
  }
  if (is_error) {
    gold_error("%s: %s",pcVar2,__s);
  }
  else {
    gold_warning("%s: %s",pcVar2,__s);
  }
  operator_delete__(__s);
  if ((to->field_0x2a & 7) == 0) {
    ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_finish;
  }
  else {
    ppOVar3 = (pointer)gettext("command line");
  }
  gold_info("%s: %s: previous definition here",program_name,ppOVar3);
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)demangled._M_dataplus._M_p != &demangled.field_2) {
    operator_delete(demangled._M_dataplus._M_p);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

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

{
  size_t sVar1;
  char *__s;
  int iVar2;
  undefined4 uVar3;
  undefined1 *local_34;
  int local_30;
  undefined1 auStack_2c [28];
  
  FUN_0034dd40(&local_34,param_3);
  sVar1 = strlen(param_2);
  sVar1 = sVar1 + 10 + local_30;
                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */
  __s = (char *)FUN_003ac450(sVar1);
  iVar2 = snprintf(__s,sVar1,param_2,local_34);
  switch(param_4) {
  case 0:
    uVar3 = *(undefined4 *)(param_5 + 4);
    break;
  case 1:
    uVar3 = gettext("COPY reloc");
    break;
  case 2:
  case 3:
    uVar3 = gettext("command line");
    break;
  case 4:
    uVar3 = gettext("linker script");
    break;
  case 5:
  case 6:
    uVar3 = gettext("linker defined");
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);
  }
  if (param_1 == '\0') {
    FUN_0023b840("%s: %s",uVar3,__s);
  }
  else {
    FUN_0023b810("%s: %s",uVar3,__s);
  }
  FUN_003ae020(__s);
  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {
    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);
  }
  else {
    uVar3 = gettext("command line");
  }
  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);
  if (local_34 != auStack_2c) {
    FUN_003ae080(local_34);
  }
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
CALL 0x00063c76
ADD ESI,0x2be966
PUSH EBX
SUB ESP,0x44
MOV EAX,dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x40],EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
MOV EBX,ESI
CALL 0x0034dd40
PUSH dword ptr [EBP + 0xc]
CALL 0x00039330
MOV EDX,dword ptr [EBP + -0x2c]
LEA EAX,[EAX + EDX*0x1 + 0xa]
MOV dword ptr [EBP + -0x3c],EAX
MOV dword ptr [ESP],EAX
CALL 0x003ac450
ADD ESP,0x10
PUSH dword ptr [EBP + -0x30]
MOV EDI,EAX
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + -0x3c]
PUSH EAX
CALL 0x00039980
ADD ESP,0x10
CMP dword ptr [EBP + 0x14],0x6
JA 0x0032b837
MOV ECX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [ESI + ECX*0x4 + 0xffeac610]
ADD EAX,ESI
JMP EAX
PUSH EAX
LEA EAX,[ESI + 0xffeaca44]
PUSH EAX
LEA EAX,[ESI + 0xffeac5b4]
PUSH 0x3a6
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */\n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */\n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)" identifier (parameter_list "(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)" ( (parameter_declaration "char param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */\n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined1 auStack_2c [28];" type_identifier (array_declarator "auStack_2c [28]" identifier [ number_literal ]) ;) (expression_statement "FUN_0034dd40(&local_34,param_3);" (call_expression "FUN_0034dd40(&local_34,param_3)" identifier (argument_list "(&local_34,param_3)" ( (pointer_expression "&local_34" & identifier) , identifier ))) ;) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "sVar1 = sVar1 + 10 + local_30;" (assignment_expression "sVar1 = sVar1 + 10 + local_30" identifier = (binary_expression "sVar1 + 10 + local_30" (binary_expression "sVar1 + 10" identifier + number_literal) + identifier)) ;) comment (expression_statement "__s = (char *)FUN_003ac450(sVar1);" (assignment_expression "__s = (char *)FUN_003ac450(sVar1)" identifier = (cast_expression "(char *)FUN_003ac450(sVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac450(sVar1)" identifier (argument_list "(sVar1)" ( identifier ))))) ;) (expression_statement "iVar2 = snprintf(__s,sVar1,param_2,local_34);" (assignment_expression "iVar2 = snprintf(__s,sVar1,param_2,local_34)" identifier = (call_expression "snprintf(__s,sVar1,param_2,local_34)" identifier (argument_list "(__s,sVar1,param_2,local_34)" ( identifier , identifier , identifier , identifier )))) ;) (switch_statement "switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }" { (case_statement "case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;" case number_literal : (expression_statement "uVar3 = *(undefined4 *)(param_5 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_5 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    uVar3 = gettext("COPY reloc");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("COPY reloc");" (assignment_expression "uVar3 = gettext("COPY reloc")" identifier = (call_expression "gettext("COPY reloc")" identifier (argument_list "("COPY reloc")" ( (string_literal ""COPY reloc"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n    uVar3 = gettext("command line");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("command line");" (assignment_expression "uVar3 = gettext("command line")" identifier = (call_expression "gettext("command line")" identifier (argument_list "("command line")" ( (string_literal ""command line"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uVar3 = gettext("linker script");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("linker script");" (assignment_expression "uVar3 = gettext("linker script")" identifier = (call_expression "gettext("linker script")" identifier (argument_list "("linker script")" ( (string_literal ""linker script"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "case 5:" case number_literal :) (case_statement "case 6:\n    uVar3 = gettext("linker defined");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("linker defined");" (assignment_expression "uVar3 = gettext("linker defined")" identifier = (call_expression "gettext("linker defined")" identifier (argument_list "("linker defined")" ( (string_literal ""linker defined"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);" default : comment (expression_statement "FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);" (call_expression "FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2)" identifier (argument_list "("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2)" ( (string_literal ""../../gold/resolve.cc"" " string_content ") , number_literal , (string_literal ""report_resolve_problem"" " string_content ") , identifier ))) ;)) })) (if_statement "if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }" { (expression_statement "FUN_0023b840("%s: %s",uVar3,__s);" (call_expression "FUN_0023b840("%s: %s",uVar3,__s)" identifier (argument_list "("%s: %s",uVar3,__s)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" else (compound_statement "{\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" { (expression_statement "FUN_0023b810("%s: %s",uVar3,__s);" (call_expression "FUN_0023b810("%s: %s",uVar3,__s)" identifier (argument_list "("%s: %s",uVar3,__s)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) }))) (expression_statement "FUN_003ae020(__s);" (call_expression "FUN_003ae020(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (if_statement "if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }" if (parenthesized_expression "((*(byte *)(param_3 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_3 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_3 + 0x2a) & 7" (pointer_expression "*(byte *)(param_3 + 0x2a)" * (cast_expression "(byte *)(param_3 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }" { (expression_statement "uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_3 + 8) + 4)" * (cast_expression "(undefined4 *)(*(int *)(param_3 + 8) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 8) + 4)" ( (binary_expression "*(int *)(param_3 + 8) + 4" (pointer_expression "*(int *)(param_3 + 8)" * (cast_expression "(int *)(param_3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    uVar3 = gettext("command line");\n  }" else (compound_statement "{\n    uVar3 = gettext("command line");\n  }" { (expression_statement "uVar3 = gettext("command line");" (assignment_expression "uVar3 = gettext("command line")" identifier = (call_expression "gettext("command line")" identifier (argument_list "("command line")" ( (string_literal ""command line"" " string_content ") )))) ;) }))) (expression_statement "FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);" (call_expression "FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3)" identifier (argument_list "("%s: %s: previous definition here",DAT_005eb710,uVar3)" ( (string_literal ""%s: %s: previous definition here"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }" if (parenthesized_expression "(local_34 != auStack_2c)" ( (binary_expression "local_34 != auStack_2c" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080(local_34);\n  }" { (expression_statement "FUN_003ae080(local_34);" (call_expression "FUN_003ae080(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nvoid gold::Symbol_table::report_resolve_problem\n               (bool is_error,char *msg,Symbol *to,Defined defined,Object *object)\n\n{\n  uint __maxlen;\n  size_t sVar1;\n  char *__s;\n  pointer pcVar2;\n  pointer ppOVar3;\n  string demangled;\n  \n  Symbol::demangled_name(to);\n  sVar1 = strlen(msg);\n  __maxlen = sVar1 + 10 + demangled._M_string_length;\n                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */\n  __s = (char *)operator_new__(__maxlen);\n  snprintf(__s,__maxlen,msg,demangled._M_dataplus._M_p);\n  switch(defined) {\n  case OBJECT:\n    pcVar2 = (object->name_)._M_dataplus._M_p;\n    break;\n  case COPY:\n    pcVar2 = (pointer)gettext("COPY reloc");\n    break;\n  case DEFSYM:\n  case UNDEFINED:\n    pcVar2 = (pointer)gettext("command line");\n    break;\n  case SCRIPT:\n    pcVar2 = (pointer)gettext("linker script");\n    break;\n  case PREDEFINED:\n  case INCREMENTAL_BASE:\n    pcVar2 = (pointer)gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");\n  }\n  if (is_error) {\n    gold_error("%s: %s",pcVar2,__s);\n  }\n  else {\n    gold_warning("%s: %s",pcVar2,__s);\n  }\n  operator_delete__(__s);\n  if ((to->field_0x2a & 7) == 0) {\n    ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    ppOVar3 = (pointer)gettext("command line");\n  }\n  gold_info("%s: %s: previous definition here",program_name,ppOVar3);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)demangled._M_dataplus._M_p != &demangled.field_2) {\n    operator_delete(demangled._M_dataplus._M_p);\n  }\n  return;\n}\n\n" comment (function_definition "void gold::Symbol_table::report_resolve_problem\n               (bool is_error,char *msg,Symbol *to,Defined defined,Object *object)\n\n{\n  uint __maxlen;\n  size_t sVar1;\n  char *__s;\n  pointer pcVar2;\n  pointer ppOVar3;\n  string demangled;\n  \n  Symbol::demangled_name(to);\n  sVar1 = strlen(msg);\n  __maxlen = sVar1 + 10 + demangled._M_string_length;\n                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */\n  __s = (char *)operator_new__(__maxlen);\n  snprintf(__s,__maxlen,msg,demangled._M_dataplus._M_p);\n  switch(defined) {\n  case OBJECT:\n    pcVar2 = (object->name_)._M_dataplus._M_p;\n    break;\n  case COPY:\n    pcVar2 = (pointer)gettext("COPY reloc");\n    break;\n  case DEFSYM:\n  case UNDEFINED:\n    pcVar2 = (pointer)gettext("command line");\n    break;\n  case SCRIPT:\n    pcVar2 = (pointer)gettext("linker script");\n    break;\n  case PREDEFINED:\n  case INCREMENTAL_BASE:\n    pcVar2 = (pointer)gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");\n  }\n  if (is_error) {\n    gold_error("%s: %s",pcVar2,__s);\n  }\n  else {\n    gold_warning("%s: %s",pcVar2,__s);\n  }\n  operator_delete__(__s);\n  if ((to->field_0x2a & 7) == 0) {\n    ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    ppOVar3 = (pointer)gettext("command line");\n  }\n  gold_info("%s: %s: previous definition here",program_name,ppOVar3);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)demangled._M_dataplus._M_p != &demangled.field_2) {\n    operator_delete(demangled._M_dataplus._M_p);\n  }\n  return;\n}" primitive_type (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "report_resolve_problem\n               (bool is_error,char *msg,Symbol *to,Defined defined,Object *object)" identifier (parameter_list "(bool is_error,char *msg,Symbol *to,Defined defined,Object *object)" ( (parameter_declaration "bool is_error" primitive_type identifier) , (parameter_declaration "char *msg" primitive_type (pointer_declarator "*msg" * identifier)) , (parameter_declaration "Symbol *to" type_identifier (pointer_declarator "*to" * identifier)) , (parameter_declaration "Defined defined" type_identifier identifier) , (parameter_declaration "Object *object" type_identifier (pointer_declarator "*object" * identifier)) ))) (compound_statement "{\n  uint __maxlen;\n  size_t sVar1;\n  char *__s;\n  pointer pcVar2;\n  pointer ppOVar3;\n  string demangled;\n  \n  Symbol::demangled_name(to);\n  sVar1 = strlen(msg);\n  __maxlen = sVar1 + 10 + demangled._M_string_length;\n                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */\n  __s = (char *)operator_new__(__maxlen);\n  snprintf(__s,__maxlen,msg,demangled._M_dataplus._M_p);\n  switch(defined) {\n  case OBJECT:\n    pcVar2 = (object->name_)._M_dataplus._M_p;\n    break;\n  case COPY:\n    pcVar2 = (pointer)gettext("COPY reloc");\n    break;\n  case DEFSYM:\n  case UNDEFINED:\n    pcVar2 = (pointer)gettext("command line");\n    break;\n  case SCRIPT:\n    pcVar2 = (pointer)gettext("linker script");\n    break;\n  case PREDEFINED:\n  case INCREMENTAL_BASE:\n    pcVar2 = (pointer)gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");\n  }\n  if (is_error) {\n    gold_error("%s: %s",pcVar2,__s);\n  }\n  else {\n    gold_warning("%s: %s",pcVar2,__s);\n  }\n  operator_delete__(__s);\n  if ((to->field_0x2a & 7) == 0) {\n    ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    ppOVar3 = (pointer)gettext("command line");\n  }\n  gold_info("%s: %s: previous definition here",program_name,ppOVar3);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)demangled._M_dataplus._M_p != &demangled.field_2) {\n    operator_delete(demangled._M_dataplus._M_p);\n  }\n  return;\n}" { (declaration "uint __maxlen;" type_identifier identifier ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "pointer pcVar2;" type_identifier identifier ;) (declaration "pointer ppOVar3;" type_identifier identifier ;) (declaration "string demangled;" type_identifier identifier ;) (labeled_statement "Symbol::demangled_name(to);" statement_identifier : (ERROR ":" :) (expression_statement "demangled_name(to);" (call_expression "demangled_name(to)" identifier (argument_list "(to)" ( identifier ))) ;)) (expression_statement "sVar1 = strlen(msg);" (assignment_expression "sVar1 = strlen(msg)" identifier = (call_expression "strlen(msg)" identifier (argument_list "(msg)" ( identifier )))) ;) (expression_statement "__maxlen = sVar1 + 10 + demangled._M_string_length;" (assignment_expression "__maxlen = sVar1 + 10 + demangled._M_string_length" identifier = (binary_expression "sVar1 + 10 + demangled._M_string_length" (binary_expression "sVar1 + 10" identifier + number_literal) + (field_expression "demangled._M_string_length" identifier . field_identifier))) ;) comment (expression_statement "__s = (char *)operator_new__(__maxlen);" (assignment_expression "__s = (char *)operator_new__(__maxlen)" identifier = (cast_expression "(char *)operator_new__(__maxlen)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(__maxlen)" identifier (argument_list "(__maxlen)" ( identifier ))))) ;) (expression_statement "snprintf(__s,__maxlen,msg,demangled._M_dataplus._M_p);" (call_expression "snprintf(__s,__maxlen,msg,demangled._M_dataplus._M_p)" identifier (argument_list "(__s,__maxlen,msg,demangled._M_dataplus._M_p)" ( identifier , identifier , identifier , (field_expression "demangled._M_dataplus._M_p" (field_expression "demangled._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) (switch_statement "switch(defined) {\n  case OBJECT:\n    pcVar2 = (object->name_)._M_dataplus._M_p;\n    break;\n  case COPY:\n    pcVar2 = (pointer)gettext("COPY reloc");\n    break;\n  case DEFSYM:\n  case UNDEFINED:\n    pcVar2 = (pointer)gettext("command line");\n    break;\n  case SCRIPT:\n    pcVar2 = (pointer)gettext("linker script");\n    break;\n  case PREDEFINED:\n  case INCREMENTAL_BASE:\n    pcVar2 = (pointer)gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");\n  }" switch (parenthesized_expression "(defined)" ( identifier )) (compound_statement "{\n  case OBJECT:\n    pcVar2 = (object->name_)._M_dataplus._M_p;\n    break;\n  case COPY:\n    pcVar2 = (pointer)gettext("COPY reloc");\n    break;\n  case DEFSYM:\n  case UNDEFINED:\n    pcVar2 = (pointer)gettext("command line");\n    break;\n  case SCRIPT:\n    pcVar2 = (pointer)gettext("linker script");\n    break;\n  case PREDEFINED:\n  case INCREMENTAL_BASE:\n    pcVar2 = (pointer)gettext("linker defined");\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");\n  }" { (case_statement "case OBJECT:\n    pcVar2 = (object->name_)._M_dataplus._M_p;\n    break;" case identifier : (expression_statement "pcVar2 = (object->name_)._M_dataplus._M_p;" (assignment_expression "pcVar2 = (object->name_)._M_dataplus._M_p" identifier = (field_expression "(object->name_)._M_dataplus._M_p" (field_expression "(object->name_)._M_dataplus" (parenthesized_expression "(object->name_)" ( (field_expression "object->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case COPY:\n    pcVar2 = (pointer)gettext("COPY reloc");\n    break;" case identifier : (expression_statement "pcVar2 = (pointer)gettext("COPY reloc");" (assignment_expression "pcVar2 = (pointer)gettext("COPY reloc")" identifier = (cast_expression "(pointer)gettext("COPY reloc")" ( (type_descriptor "pointer" type_identifier) ) (call_expression "gettext("COPY reloc")" identifier (argument_list "("COPY reloc")" ( (string_literal ""COPY reloc"" " string_content ") ))))) ;) (break_statement "break;" break ;)) (case_statement "case DEFSYM:" case identifier :) (case_statement "case UNDEFINED:\n    pcVar2 = (pointer)gettext("command line");\n    break;" case identifier : (expression_statement "pcVar2 = (pointer)gettext("command line");" (assignment_expression "pcVar2 = (pointer)gettext("command line")" identifier = (cast_expression "(pointer)gettext("command line")" ( (type_descriptor "pointer" type_identifier) ) (call_expression "gettext("command line")" identifier (argument_list "("command line")" ( (string_literal ""command line"" " string_content ") ))))) ;) (break_statement "break;" break ;)) (case_statement "case SCRIPT:\n    pcVar2 = (pointer)gettext("linker script");\n    break;" case identifier : (expression_statement "pcVar2 = (pointer)gettext("linker script");" (assignment_expression "pcVar2 = (pointer)gettext("linker script")" identifier = (cast_expression "(pointer)gettext("linker script")" ( (type_descriptor "pointer" type_identifier) ) (call_expression "gettext("linker script")" identifier (argument_list "("linker script")" ( (string_literal ""linker script"" " string_content ") ))))) ;) (break_statement "break;" break ;)) (case_statement "case PREDEFINED:" case identifier :) (case_statement "case INCREMENTAL_BASE:\n    pcVar2 = (pointer)gettext("linker defined");\n    break;" case identifier : (expression_statement "pcVar2 = (pointer)gettext("linker defined");" (assignment_expression "pcVar2 = (pointer)gettext("linker defined")" identifier = (cast_expression "(pointer)gettext("linker defined")" ( (type_descriptor "pointer" type_identifier) ) (call_expression "gettext("linker defined")" identifier (argument_list "("linker defined")" ( (string_literal ""linker defined"" " string_content ") ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");" default : comment (expression_statement "do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem");" (call_expression "do_gold_unreachable("../../gold/resolve.cc",0x3a6,"report_resolve_problem")" identifier (argument_list "("../../gold/resolve.cc",0x3a6,"report_resolve_problem")" ( (string_literal ""../../gold/resolve.cc"" " string_content ") , number_literal , (string_literal ""report_resolve_problem"" " string_content ") ))) ;)) })) (if_statement "if (is_error) {\n    gold_error("%s: %s",pcVar2,__s);\n  }\n  else {\n    gold_warning("%s: %s",pcVar2,__s);\n  }" if (parenthesized_expression "(is_error)" ( identifier )) (compound_statement "{\n    gold_error("%s: %s",pcVar2,__s);\n  }" { (expression_statement "gold_error("%s: %s",pcVar2,__s);" (call_expression "gold_error("%s: %s",pcVar2,__s)" identifier (argument_list "("%s: %s",pcVar2,__s)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n    gold_warning("%s: %s",pcVar2,__s);\n  }" else (compound_statement "{\n    gold_warning("%s: %s",pcVar2,__s);\n  }" { (expression_statement "gold_warning("%s: %s",pcVar2,__s);" (call_expression "gold_warning("%s: %s",pcVar2,__s)" identifier (argument_list "("%s: %s",pcVar2,__s)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) }))) (expression_statement "operator_delete__(__s);" (call_expression "operator_delete__(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (if_statement "if ((to->field_0x2a & 7) == 0) {\n    ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }\n  else {\n    ppOVar3 = (pointer)gettext("command line");\n  }" if (parenthesized_expression "((to->field_0x2a & 7) == 0)" ( (binary_expression "(to->field_0x2a & 7) == 0" (parenthesized_expression "(to->field_0x2a & 7)" ( (binary_expression "to->field_0x2a & 7" (field_expression "to->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;\n  }" { (expression_statement "ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish;" (field_expression "ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish" (field_expression "ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold" identifier = (binary_expression "((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base<gold" (field_expression "((to->u1_).output_segment)->output_lists_[0].\n              super__Vector_base" (subscript_expression "((to->u1_).output_segment)->output_lists_[0]" (field_expression "((to->u1_).output_segment)->output_lists_" (parenthesized_expression "((to->u1_).output_segment)" ( (field_expression "(to->u1_).output_segment" (parenthesized_expression "(to->u1_)" ( (field_expression "to->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) }) (else_clause "else {\n    ppOVar3 = (pointer)gettext("command line");\n  }" else (compound_statement "{\n    ppOVar3 = (pointer)gettext("command line");\n  }" { (expression_statement "ppOVar3 = (pointer)gettext("command line");" (assignment_expression "ppOVar3 = (pointer)gettext("command line")" identifier = (cast_expression "(pointer)gettext("command line")" ( (type_descriptor "pointer" type_identifier) ) (call_expression "gettext("command line")" identifier (argument_list "("command line")" ( (string_literal ""command line"" " string_content ") ))))) ;) }))) (expression_statement "gold_info("%s: %s: previous definition here",program_name,ppOVar3);" (call_expression "gold_info("%s: %s: previous definition here",program_name,ppOVar3)" identifier (argument_list "("%s: %s: previous definition here",program_name,ppOVar3)" ( (string_literal ""%s: %s: previous definition here"" " string_content ") , identifier , identifier ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)demangled._M_dataplus._M_p != &demangled.field_2) {\n    operator_delete(demangled._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)demangled._M_dataplus._M_p != &demangled.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)demangled._M_dataplus._M_p != &demangled.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       *)demangled._M_dataplus._M_p != &demangled.field_2" (binary_expression "allocator<char>_>_9\n       *)demangled._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)demangled._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "demangled._M_dataplus._M_p" (field_expression "demangled._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&demangled.field_2" & (field_expression "demangled.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(demangled._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(demangled._M_dataplus._M_p);" (call_expression "operator_delete(demangled._M_dataplus._M_p)" identifier (argument_list "(demangled._M_dataplus._M_p)" ( (field_expression "demangled._M_dataplus._M_p" (field_expression "demangled._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    \n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    \n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)" identifier (parameter_list "(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)" ( (parameter_declaration "char param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    \n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined1 auStack_2c [28];" type_identifier (array_declarator "auStack_2c [28]" identifier [ number_literal ]) ;) (expression_statement "FUN_0034dd40(&local_34,param_3);" (call_expression "FUN_0034dd40(&local_34,param_3)" identifier (argument_list "(&local_34,param_3)" ( (pointer_expression "&local_34" & identifier) , identifier ))) ;) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "sVar1 = sVar1 + 10 + local_30;" (assignment_expression "sVar1 = sVar1 + 10 + local_30" identifier = (binary_expression "sVar1 + 10 + local_30" (binary_expression "sVar1 + 10" identifier + number_literal) + identifier)) ;) (expression_statement "__s = (char *)FUN_003ac450(sVar1);" (assignment_expression "__s = (char *)FUN_003ac450(sVar1)" identifier = (cast_expression "(char *)FUN_003ac450(sVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac450(sVar1)" identifier (argument_list "(sVar1)" ( identifier ))))) ;) (expression_statement "iVar2 = snprintf(__s,sVar1,param_2,local_34);" (assignment_expression "iVar2 = snprintf(__s,sVar1,param_2,local_34)" identifier = (call_expression "snprintf(__s,sVar1,param_2,local_34)" identifier (argument_list "(__s,sVar1,param_2,local_34)" ( identifier , identifier , identifier , identifier )))) ;) (switch_statement "switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }" { (case_statement "case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;" case number_literal : (expression_statement "uVar3 = *(undefined4 *)(param_5 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_5 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_5 + 4)" * (cast_expression "(undefined4 *)(param_5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    uVar3 = gettext("COPY reloc");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("COPY reloc");" (assignment_expression "uVar3 = gettext("COPY reloc")" identifier = (call_expression "gettext("COPY reloc")" identifier (argument_list "("COPY reloc")" ( (string_literal ""COPY reloc"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n    uVar3 = gettext("command line");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("command line");" (assignment_expression "uVar3 = gettext("command line")" identifier = (call_expression "gettext("command line")" identifier (argument_list "("command line")" ( (string_literal ""command line"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uVar3 = gettext("linker script");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("linker script");" (assignment_expression "uVar3 = gettext("linker script")" identifier = (call_expression "gettext("linker script")" identifier (argument_list "("linker script")" ( (string_literal ""linker script"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "case 5:" case number_literal :) (case_statement "case 6:\n    uVar3 = gettext("linker defined");\n    break;" case number_literal : (expression_statement "uVar3 = gettext("linker defined");" (assignment_expression "uVar3 = gettext("linker defined")" identifier = (call_expression "gettext("linker defined")" identifier (argument_list "("linker defined")" ( (string_literal ""linker defined"" " string_content ") )))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);" default : (expression_statement "FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);" (call_expression "FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2)" identifier (argument_list "("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2)" ( (string_literal ""../../gold/resolve.cc"" " string_content ") , number_literal , (string_literal ""report_resolve_problem"" " string_content ") , identifier ))) ;)) })) (if_statement "if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }" { (expression_statement "FUN_0023b840("%s: %s",uVar3,__s);" (call_expression "FUN_0023b840("%s: %s",uVar3,__s)" identifier (argument_list "("%s: %s",uVar3,__s)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" else (compound_statement "{\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" { (expression_statement "FUN_0023b810("%s: %s",uVar3,__s);" (call_expression "FUN_0023b810("%s: %s",uVar3,__s)" identifier (argument_list "("%s: %s",uVar3,__s)" ( (string_literal ""%s: %s"" " string_content ") , identifier , identifier ))) ;) }))) (expression_statement "FUN_003ae020(__s);" (call_expression "FUN_003ae020(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (if_statement "if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }" if (parenthesized_expression "((*(byte *)(param_3 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(param_3 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_3 + 0x2a) & 7" (pointer_expression "*(byte *)(param_3 + 0x2a)" * (cast_expression "(byte *)(param_3 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }" { (expression_statement "uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(param_3 + 8) + 4)" * (cast_expression "(undefined4 *)(*(int *)(param_3 + 8) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 8) + 4)" ( (binary_expression "*(int *)(param_3 + 8) + 4" (pointer_expression "*(int *)(param_3 + 8)" * (cast_expression "(int *)(param_3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n    uVar3 = gettext("command line");\n  }" else (compound_statement "{\n    uVar3 = gettext("command line");\n  }" { (expression_statement "uVar3 = gettext("command line");" (assignment_expression "uVar3 = gettext("command line")" identifier = (call_expression "gettext("command line")" identifier (argument_list "("command line")" ( (string_literal ""command line"" " string_content ") )))) ;) }))) (expression_statement "FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);" (call_expression "FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3)" identifier (argument_list "("%s: %s: previous definition here",DAT_005eb710,uVar3)" ( (string_literal ""%s: %s: previous definition here"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }" if (parenthesized_expression "(local_34 != auStack_2c)" ( (binary_expression "local_34 != auStack_2c" identifier != identifier) )) (compound_statement "{\n    FUN_003ae080(local_34);\n  }" { (expression_statement "FUN_003ae080(local_34);" (call_expression "FUN_003ae080(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    \n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0032b690(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)" (identifier "FUN_0032b690") (parameter_list "(char param_1,char *param_2,int param_3,undefined4 param_4,int param_5)" (( "(") (parameter_declaration "char param_1" (primitive_type "char") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  size_t sVar1;\n  char *__s;\n  int iVar2;\n  undefined4 uVar3;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 auStack_2c [28];\n  \n  FUN_0034dd40(&local_34,param_3);\n  sVar1 = strlen(param_2);\n  sVar1 = sVar1 + 10 + local_30;\n                    \n  __s = (char *)FUN_003ac450(sVar1);\n  iVar2 = snprintf(__s,sVar1,param_2,local_34);\n  switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }\n  if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }\n  FUN_003ae020(__s);\n  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }\n  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);\n  if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined1 auStack_2c [28];" (type_identifier "undefined1") (array_declarator "auStack_2c [28]" (identifier "auStack_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (expression_statement "FUN_0034dd40(&local_34,param_3);" (call_expression "FUN_0034dd40(&local_34,param_3)" (identifier "FUN_0034dd40") (argument_list "(&local_34,param_3)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" (identifier "sVar1") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "sVar1 = sVar1 + 10 + local_30;" (assignment_expression "sVar1 = sVar1 + 10 + local_30" (identifier "sVar1") (= "=") (binary_expression "sVar1 + 10 + local_30" (binary_expression "sVar1 + 10" (identifier "sVar1") (+ "+") (number_literal "10")) (+ "+") (identifier "local_30"))) (; ";")) (expression_statement "__s = (char *)FUN_003ac450(sVar1);" (assignment_expression "__s = (char *)FUN_003ac450(sVar1)" (identifier "__s") (= "=") (cast_expression "(char *)FUN_003ac450(sVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac450(sVar1)" (identifier "FUN_003ac450") (argument_list "(sVar1)" (( "(") (identifier "sVar1") () ")"))))) (; ";")) (expression_statement "iVar2 = snprintf(__s,sVar1,param_2,local_34);" (assignment_expression "iVar2 = snprintf(__s,sVar1,param_2,local_34)" (identifier "iVar2") (= "=") (call_expression "snprintf(__s,sVar1,param_2,local_34)" (identifier "snprintf") (argument_list "(__s,sVar1,param_2,local_34)" (( "(") (identifier "__s") (, ",") (identifier "sVar1") (, ",") (identifier "param_2") (, ",") (identifier "local_34") () ")")))) (; ";")) (switch_statement "switch(param_4) {\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }" (switch "switch") (parenthesized_expression "(param_4)" (( "(") (identifier "param_4") () ")")) (compound_statement "{\n  case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;\n  case 1:\n    uVar3 = gettext("COPY reloc");\n    break;\n  case 2:\n  case 3:\n    uVar3 = gettext("command line");\n    break;\n  case 4:\n    uVar3 = gettext("linker script");\n    break;\n  case 5:\n  case 6:\n    uVar3 = gettext("linker defined");\n    break;\n  default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);\n  }" ({ "{") (case_statement "case 0:\n    uVar3 = *(undefined4 *)(param_5 + 4);\n    break;" (case "case") (number_literal "0") (: ":") (expression_statement "uVar3 = *(undefined4 *)(param_5 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_5 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_5 + 4)" (* "*") (cast_expression "(undefined4 *)(param_5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    uVar3 = gettext("COPY reloc");\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "uVar3 = gettext("COPY reloc");" (assignment_expression "uVar3 = gettext("COPY reloc")" (identifier "uVar3") (= "=") (call_expression "gettext("COPY reloc")" (identifier "gettext") (argument_list "("COPY reloc")" (( "(") (string_literal ""COPY reloc"" (" """) (string_content "COPY reloc") (" """)) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n    uVar3 = gettext("command line");\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar3 = gettext("command line");" (assignment_expression "uVar3 = gettext("command line")" (identifier "uVar3") (= "=") (call_expression "gettext("command line")" (identifier "gettext") (argument_list "("command line")" (( "(") (string_literal ""command line"" (" """) (string_content "command line") (" """)) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    uVar3 = gettext("linker script");\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "uVar3 = gettext("linker script");" (assignment_expression "uVar3 = gettext("linker script")" (identifier "uVar3") (= "=") (call_expression "gettext("linker script")" (identifier "gettext") (argument_list "("linker script")" (( "(") (string_literal ""linker script"" (" """) (string_content "linker script") (" """)) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:" (case "case") (number_literal "5") (: ":")) (case_statement "case 6:\n    uVar3 = gettext("linker defined");\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "uVar3 = gettext("linker defined");" (assignment_expression "uVar3 = gettext("linker defined")" (identifier "uVar3") (= "=") (call_expression "gettext("linker defined")" (identifier "gettext") (argument_list "("linker defined")" (( "(") (string_literal ""linker defined"" (" """) (string_content "linker defined") (" """)) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    \n    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);" (default "default") (: ":") (expression_statement "FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);" (call_expression "FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2)" (identifier "FUN_002446e0") (argument_list "("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2)" (( "(") (string_literal ""../../gold/resolve.cc"" (" """) (string_content "../../gold/resolve.cc") (" """)) (, ",") (number_literal "0x3a6") (, ",") (string_literal ""report_resolve_problem"" (" """) (string_content "report_resolve_problem") (" """)) (, ",") (identifier "iVar2") () ")"))) (; ";"))) (} "}"))) (if_statement "if (param_1 == '\0') {\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }\n  else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" (if "if") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_0023b840("%s: %s",uVar3,__s);\n  }" ({ "{") (expression_statement "FUN_0023b840("%s: %s",uVar3,__s);" (call_expression "FUN_0023b840("%s: %s",uVar3,__s)" (identifier "FUN_0023b840") (argument_list "("%s: %s",uVar3,__s)" (( "(") (string_literal ""%s: %s"" (" """) (string_content "%s: %s") (" """)) (, ",") (identifier "uVar3") (, ",") (identifier "__s") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" (else "else") (compound_statement "{\n    FUN_0023b810("%s: %s",uVar3,__s);\n  }" ({ "{") (expression_statement "FUN_0023b810("%s: %s",uVar3,__s);" (call_expression "FUN_0023b810("%s: %s",uVar3,__s)" (identifier "FUN_0023b810") (argument_list "("%s: %s",uVar3,__s)" (( "(") (string_literal ""%s: %s"" (" """) (string_content "%s: %s") (" """)) (, ",") (identifier "uVar3") (, ",") (identifier "__s") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_003ae020(__s);" (call_expression "FUN_003ae020(__s)" (identifier "FUN_003ae020") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (if_statement "if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }\n  else {\n    uVar3 = gettext("command line");\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_3 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(param_3 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(param_3 + 0x2a) & 7" (pointer_expression "*(byte *)(param_3 + 0x2a)" (* "*") (cast_expression "(byte *)(param_3 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2a)" (( "(") (binary_expression "param_3 + 0x2a" (identifier "param_3") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);\n  }" ({ "{") (expression_statement "uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(param_3 + 8) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_3 + 8) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_3 + 8) + 4)" (( "(") (binary_expression "*(int *)(param_3 + 8) + 4" (pointer_expression "*(int *)(param_3 + 8)" (* "*") (cast_expression "(int *)(param_3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    uVar3 = gettext("command line");\n  }" (else "else") (compound_statement "{\n    uVar3 = gettext("command line");\n  }" ({ "{") (expression_statement "uVar3 = gettext("command line");" (assignment_expression "uVar3 = gettext("command line")" (identifier "uVar3") (= "=") (call_expression "gettext("command line")" (identifier "gettext") (argument_list "("command line")" (( "(") (string_literal ""command line"" (" """) (string_content "command line") (" """)) () ")")))) (; ";")) (} "}")))) (expression_statement "FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);" (call_expression "FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3)" (identifier "FUN_0023b870") (argument_list "("%s: %s: previous definition here",DAT_005eb710,uVar3)" (( "(") (string_literal ""%s: %s: previous definition here"" (" """) (string_content "%s: %s: previous definition here") (" """)) (, ",") (identifier "DAT_005eb710") (, ",") (identifier "uVar3") () ")"))) (; ";")) (if_statement "if (local_34 != auStack_2c) {\n    FUN_003ae080(local_34);\n  }" (if "if") (parenthesized_expression "(local_34 != auStack_2c)" (( "(") (binary_expression "local_34 != auStack_2c" (identifier "local_34") (!= "!=") (identifier "auStack_2c")) () ")")) (compound_statement "{\n    FUN_003ae080(local_34);\n  }" ({ "{") (expression_statement "FUN_003ae080(local_34);" (call_expression "FUN_003ae080(local_34)" (identifier "FUN_003ae080") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

void var_11::Symbol_table::function_1
               (bool is_error,char *msg,type_1 *to,type_2 defined,type_3 *object)

{
  type_4 __maxlen;
  size_t var_3;
  char *__s;
  type_5 pcVar2;
  type_5 ppOVar3;
  type_6 demangled;
  
  Symbol::var_1(to);
  var_3 = var_2(msg);
  __maxlen = var_3 + 10 + demangled._M_string_length;
                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */
  __s = (char *)var_4(__maxlen);
  var_5(__s,__maxlen,msg,demangled._M_dataplus._M_p);
  switch(defined) {
  case OBJECT:
    pcVar2 = (object->name_)._M_dataplus._M_p;
    break;
  case COPY:
    pcVar2 = (type_5)var_6("COPY reloc");
    break;
  case DEFSYM:
  case UNDEFINED:
    pcVar2 = (type_5)var_6("command line");
    break;
  case SCRIPT:
    pcVar2 = (type_5)var_6("linker script");
    break;
  case PREDEFINED:
  case INCREMENTAL_BASE:
    pcVar2 = (type_5)var_6("linker defined");
    break;
  default:
                    /* WARNING: Subroutine does not return */
    var_7("../../gold/resolve.cc",0x3a6,"report_resolve_problem");
  }
  if (is_error) {
    var_8("%s: %s",pcVar2,__s);
  }
  else {
    var_9("%s: %s",pcVar2,__s);
  }
  var_10(__s);
  if ((to->field_0x2a & 7) == 0) {
    ppOVar3 = ((to->u1_).output_segment)->output_lists_[0].
              super__Vector_base<var_11::Output_data*,var_12::var_15<var_11::Output_data*>var_13>._M_impl.
              _M_finish;
  }
  else {
    ppOVar3 = (type_5)var_6("command line");
  }
  var_14("%s: %s: previous definition here",program_name,ppOVar3);
  if ((anon_union_16_2_edb7204a_for_basic_string<var_16,var_12::char_traits<var_16>,var_12::var_15<var_16>var_13>var_17
       *)demangled._M_dataplus._M_p != &demangled.field_2) {
    var_18(demangled._M_dataplus._M_p);
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

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

{
  size_t sVar1;
  char *__s;
  int iVar2;
  undefined4 uVar3;
  undefined1 *local_34;
  int local_30;
  undefined1 auStack_2c [28];
  
  FUN_0034dd40(&local_34,param_3);
  sVar1 = strlen(param_2);
  sVar1 = sVar1 + 10 + local_30;
                    /* try { // try from 0032b6cd to 0032b84f has its CatchHandler @ 0032b850 */
  __s = (char *)FUN_003ac450(sVar1);
  iVar2 = snprintf(__s,sVar1,param_2,local_34);
  switch(param_4) {
  case 0:
    uVar3 = *(undefined4 *)(param_5 + 4);
    break;
  case 1:
    uVar3 = gettext("COPY reloc");
    break;
  case 2:
  case 3:
    uVar3 = gettext("command line");
    break;
  case 4:
    uVar3 = gettext("linker script");
    break;
  case 5:
  case 6:
    uVar3 = gettext("linker defined");
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/resolve.cc",0x3a6,"report_resolve_problem",iVar2);
  }
  if (param_1 == '\0') {
    FUN_0023b840("%s: %s",uVar3,__s);
  }
  else {
    FUN_0023b810("%s: %s",uVar3,__s);
  }
  FUN_003ae020(__s);
  if ((*(byte *)(param_3 + 0x2a) & 7) == 0) {
    uVar3 = *(undefined4 *)(*(int *)(param_3 + 8) + 4);
  }
  else {
    uVar3 = gettext("command line");
  }
  FUN_0023b870("%s: %s: previous definition here",DAT_005eb710,uVar3);
  if (local_34 != auStack_2c) {
    FUN_003ae080(local_34);
  }
  return;
}

