
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */

void script_add_library(void *closurev,char *name,size_t length)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  Parser_closure *closure;
  undefined4 *puVar4;
  pointer pcVar5;
  pointer pcVar6;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar7;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar8;
  Input_file_argument file;
  string name_string;
  
  puVar1 = PTR__M_construct<char_const*>_004c1b68;
  name_string._M_dataplus._M_p = (pointer)&name_string.field_2;
  (*(code *)PTR__M_construct<char_const*>_004c1b68)(&name_string,name,name + length,0);
  if (*name_string._M_dataplus._M_p != 'l') {
    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);
                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */
    (*(code *)PTR_gold_error_004c1a2c)(uVar2);
  }
  paVar8 = &file.name_.field_2;
  pcVar6 = name_string._M_dataplus._M_p + 1;
  file.name_._M_dataplus._M_p = (pointer)paVar8;
  if (pcVar6 == (pointer)0x0) {
    pcVar5 = (pointer)0xffffffff;
  }
  else {
    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);
    pcVar5 = pcVar6 + iVar3;
  }
  (*(code *)puVar1)(&file,pcVar6,pcVar5,0);
  paVar7 = &file.extra_search_path_.field_2;
  file.type_ = INPUT_FILE_TYPE_LIBRARY;
  file.extra_search_path_._M_dataplus._M_p = (pointer)paVar7;
                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */
  (*(code *)puVar1)(&file.extra_search_path_,PTR_s_in_a_linker_script_004c191c + 0x6db8,
                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);
  file.options_._0_4_ = *(undefined4 *)((int)closurev + 4);
  file.options_.format_enum_ = *(Object_format *)((int)closurev + 8);
  file.options_._8_4_ = *(undefined4 *)((int)closurev + 0xc);
  file.options_.incremental_disposition_ = *(Incremental_disposition *)((int)closurev + 0x10);
  puVar4 = *(undefined4 **)((int)closurev + 0x4c);
  file.just_symbols_ = false;
  file.arg_serial_ = 0;
  if (puVar4 == (undefined4 *)0x0) {
    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);
    *(undefined4 **)((int)closurev + 0x4c) = puVar4;
    *puVar4 = 0;
    puVar4[1] = 0;
    puVar4[2] = 0;
    *(undefined2 *)(puVar4 + 3) = 0;
    puVar4[4] = 0;
  }
                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */
  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,&file);
  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)((int)closurev + 0x50);
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)file.extra_search_path_._M_dataplus._M_p != paVar7) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)file.name_._M_dataplus._M_p != paVar8) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)name_string._M_dataplus._M_p != &name_string.field_2) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return;
}



void script_add_library(int param_1,int param_2,int param_3)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  char *pcVar5;
  char *pcVar6;
  undefined1 *local_88 [2];
  undefined1 auStack_80 [16];
  undefined4 local_70;
  undefined1 *local_6c [2];
  undefined1 auStack_64 [16];
  undefined1 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  char *local_3c [2];
  char local_34 [24];
  
  puVar1 = PTR__M_construct<char_const*>_004c1b68;
  local_3c[0] = local_34;
  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);
  if (*local_3c[0] != 'l') {
    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);
                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */
    (*(code *)PTR_gold_error_004c1a2c)(uVar2);
  }
  pcVar6 = local_3c[0] + 1;
  local_88[0] = auStack_80;
  if (pcVar6 == (char *)0x0) {
    pcVar5 = (char *)0xffffffff;
  }
  else {
    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);
    pcVar5 = pcVar6 + iVar3;
  }
  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);
  local_70 = 1;
  local_6c[0] = auStack_64;
                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */
  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,
                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);
  local_50 = *(undefined4 *)(param_1 + 4);
  local_4c = *(undefined4 *)(param_1 + 8);
  local_48 = *(undefined4 *)(param_1 + 0xc);
  local_44 = *(undefined4 *)(param_1 + 0x10);
  puVar4 = *(undefined4 **)(param_1 + 0x4c);
  local_54 = 0;
  local_40 = 0;
  if (puVar4 == (undefined4 *)0x0) {
    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);
    *(undefined4 **)(param_1 + 0x4c) = puVar4;
    *puVar4 = 0;
    puVar4[1] = 0;
    puVar4[2] = 0;
    *(undefined2 *)(puVar4 + 3) = 0;
    puVar4[4] = 0;
  }
                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */
  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);
  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);
  if (local_6c[0] != auStack_64) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_88[0] != auStack_80) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_3c[0] != local_34) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return;
}


lui gp,0x22
addiu gp,gp,0x136c
addu gp,gp,t9
addiu sp,sp,-0xa0
or a3,zero,zero
addu a2,a1,a2
sw s2,0x8c(sp)
sll a3,a3,0x18
sw s3,0x90(sp)
addiu s3,sp,0x6c
sw s1,0x88(sp)
or s1,a0,zero
sw gp,0x10(sp)
addiu a0,sp,0x64
sw s0,0x84(sp)
sw ra,0x9c(sp)
sw s5,0x98(sp)
sw s4,0x94(sp)
lw s2,-0x76d8(gp)
or t9,s2,zero
jalr t9
_sw s3,0x64(sp)
li v0,0x6c
lw s0,0x64(sp)
lb v1,0x0(s0)
beq v1,v0,0x002a7f68
_lw gp,0x10(sp)
lw a0,-0x7924(gp)
lw t9,-0x3610(gp)
jalr t9
_addiu a0,a0,0x11e4
lw gp,0x10(sp)
lw t9,-0x7814(gp)
jalr t9
_or a0,v0,zero
lw gp,0x10(sp)
lw s0,0x64(sp)
addiu s5,sp,0x20
addiu s0,s0,0x1
beq s0,zero,0x002a808c
_sw s5,0x18(sp)
lw t9,-0x36a4(gp)
jalr t9
_or a0,s0,zero
addu a2,s0,v0
or a3,zero,zero
addiu s4,sp,0x18
sll a3,a3,0x18
or a1,s0,zero
or t9,s2,zero
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
or a3,zero,zero
addiu s0,sp,0x3c
li v0,0x1
sll a3,a3,0x18
sw s0,0x34(sp)
lw a2,-0x7924(gp)
addiu a0,sp,0x34
sw v0,0x30(sp)
or t9,s2,zero
addiu a2,a2,0x6db8
jalr t9
_or a1,a2,zero
lw a2,0x4(s1)
lw a1,0x8(s1)
lw v1,0xc(s1)
lw v0,0x10(s1)
lw a0,0x4c(s1)
lw gp,0x10(sp)
sb zero,0x4c(sp)
sw a2,0x50(sp)
sw a1,0x54(sp)
sw v1,0x58(sp)
sw v0,0x5c(sp)
beq a0,zero,0x002a8094
_sw zero,0x60(sp)
lw t9,-0x6c84(gp)
jalr t9
_or a1,s4,zero
lw v1,0x50(s1)
lw a0,0x34(sp)
lw gp,0x10(sp)
beq a0,s0,0x002a803c
_sw v1,0x58(v0)
lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x18(sp)
beq a0,s5,0x002a8054
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x64(sp)
beq a0,s3,0x002a8068
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x9c(sp)
lw s5,0x98(sp)
lw s4,0x94(sp)
lw s3,0x90(sp)
lw s2,0x8c(sp)
lw s1,0x88(sp)
lw s0,0x84(sp)
jr ra
_addiu sp,sp,0xa0
b 0x002a7f88
_li a2,-0x1
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x14
lw gp,0x10(sp)
or a0,v0,zero
sw v0,0x4c(s1)
sw zero,0x0(v0)
sw zero,0x4(v0)
sw zero,0x8(v0)
sh zero,0xc(v0)
b 0x002a800c
_sw zero,0x10(v0)
(translation_unit "void script_add_library(int param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */\n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */\n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}\n\n" (function_definition "void script_add_library(int param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */\n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */\n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" primitive_type (function_declarator "script_add_library(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */\n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */\n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined1 *local_88 [2];" type_identifier (pointer_declarator "*local_88 [2]" * (array_declarator "local_88 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_80 [16];" type_identifier (array_declarator "auStack_80 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined1 *local_6c [2];" type_identifier (pointer_declarator "*local_6c [2]" * (array_declarator "local_6c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_64 [16];" type_identifier (array_declarator "auStack_64 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "char *local_3c [2];" primitive_type (pointer_declarator "*local_3c [2]" * (array_declarator "local_3c [2]" identifier [ number_literal ])) ;) (declaration "char local_34 [24];" primitive_type (array_declarator "local_34 [24]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR__M_construct<char_const*>_004c1b68;" (assignment_expression "puVar1 = PTR__M_construct<char_const*>_004c1b68" identifier = (binary_expression "PTR__M_construct<char_const*>_004c1b68" (binary_expression "PTR__M_construct<char_const" identifier < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "local_3c[0] = local_34;" (assignment_expression "local_3c[0] = local_34" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_004c1b68" (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_3c,param_2,param_2 + param_3,0)" ( identifier , identifier , (binary_expression "param_2 + param_3" identifier + identifier) , number_literal ))) ;) (if_statement "if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" if (parenthesized_expression "(*local_3c[0] != 'l')" ( (binary_expression "*local_3c[0] != 'l'" (pointer_expression "*local_3c[0]" * (subscript_expression "local_3c[0]" identifier [ number_literal ])) != (char_literal "'l'" ' character ')) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x11e4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x11e4" identifier + number_literal) )))) ;) comment (expression_statement "(*(code *)PTR_gold_error_004c1a2c)(uVar2);" (call_expression "(*(code *)PTR_gold_error_004c1a2c)(uVar2)" (parenthesized_expression "(*(code *)PTR_gold_error_004c1a2c)" ( (pointer_expression "*(code *)PTR_gold_error_004c1a2c" * (cast_expression "(code *)PTR_gold_error_004c1a2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2)" ( identifier ))) ;) })) (expression_statement "pcVar6 = local_3c[0] + 1;" (assignment_expression "pcVar6 = local_3c[0] + 1" identifier = (binary_expression "local_3c[0] + 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "local_88[0] = auStack_80;" (assignment_expression "local_88[0] = auStack_80" (subscript_expression "local_88[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar5 = (char *)0xffffffff;" (assignment_expression "pcVar5 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6)" identifier = (call_expression "(*(code *)PTR_strlen_004c5b9c)(pcVar6)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" ( (pointer_expression "*(code *)PTR_strlen_004c5b9c" * (cast_expression "(code *)PTR_strlen_004c5b9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "pcVar5 = pcVar6 + iVar3;" (assignment_expression "pcVar5 = pcVar6 + iVar3" identifier = (binary_expression "pcVar6 + iVar3" identifier + identifier)) ;) }))) (expression_statement "(*(code *)puVar1)(local_88,pcVar6,pcVar5,0);" (call_expression "(*(code *)puVar1)(local_88,pcVar6,pcVar5,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_88,pcVar6,pcVar5,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) (expression_statement "local_6c[0] = auStack_64;" (assignment_expression "local_6c[0] = auStack_64" (subscript_expression "local_6c[0]" identifier [ number_literal ]) = identifier) ;) comment (expression_statement "(*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);" (call_expression "(*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" ( identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" identifier + number_literal) , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" identifier + number_literal) , number_literal ))) ;) (expression_statement "local_50 = *(undefined4 *)(param_1 + 4);" (assignment_expression "local_50 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_4c = *(undefined4 *)(param_1 + 8);" (assignment_expression "local_4c = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_48 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "local_48 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_44 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "local_44 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)(param_1 + 0x4c);" (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 0x4c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" if (parenthesized_expression "(puVar4 == (undefined4 *)0x0)" ( (binary_expression "puVar4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*(undefined4 **)(param_1 + 0x4c) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x4c) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar4 + 3) = 0;" (assignment_expression "*(undefined2 *)(puVar4 + 3) = 0" (pointer_expression "*(undefined2 *)(puVar4 + 3)" * (cast_expression "(undefined2 *)(puVar4 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 3)" ( (binary_expression "puVar4 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) })) comment (expression_statement "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);" (assignment_expression "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88)" identifier = (call_expression "(*(code *)PTR_add_file_004c25bc)(puVar4,local_88)" (parenthesized_expression "(*(code *)PTR_add_file_004c25bc)" ( (pointer_expression "*(code *)PTR_add_file_004c25bc" * (cast_expression "(code *)PTR_add_file_004c25bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,local_88)" ( identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50)" (pointer_expression "*(undefined4 *)(iVar3 + 0x58)" * (cast_expression "(undefined4 *)(iVar3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_6c[0] != auStack_64)" ( (binary_expression "local_6c[0] != auStack_64" (subscript_expression "local_6c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_88[0] != auStack_80)" ( (binary_expression "local_88[0] != auStack_80" (subscript_expression "local_88[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_3c[0] != local_34)" ( (binary_expression "local_3c[0] != local_34" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n\nvoid script_add_library(void *closurev,char *name,size_t length)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  Parser_closure *closure;\n  undefined4 *puVar4;\n  pointer pcVar5;\n  pointer pcVar6;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar7;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar8;\n  Input_file_argument file;\n  string name_string;\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  name_string._M_dataplus._M_p = (pointer)&name_string.field_2;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(&name_string,name,name + length,0);\n  if (*name_string._M_dataplus._M_p != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  paVar8 = &file.name_.field_2;\n  pcVar6 = name_string._M_dataplus._M_p + 1;\n  file.name_._M_dataplus._M_p = (pointer)paVar8;\n  if (pcVar6 == (pointer)0x0) {\n    pcVar5 = (pointer)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(&file,pcVar6,pcVar5,0);\n  paVar7 = &file.extra_search_path_.field_2;\n  file.type_ = INPUT_FILE_TYPE_LIBRARY;\n  file.extra_search_path_._M_dataplus._M_p = (pointer)paVar7;\n                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */\n  (*(code *)puVar1)(&file.extra_search_path_,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  file.options_._0_4_ = *(undefined4 *)((int)closurev + 4);\n  file.options_.format_enum_ = *(Object_format *)((int)closurev + 8);\n  file.options_._8_4_ = *(undefined4 *)((int)closurev + 0xc);\n  file.options_.incremental_disposition_ = *(Incremental_disposition *)((int)closurev + 0x10);\n  puVar4 = *(undefined4 **)((int)closurev + 0x4c);\n  file.just_symbols_ = false;\n  file.arg_serial_ = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)((int)closurev + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */\n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,&file);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)((int)closurev + 0x50);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.extra_search_path_._M_dataplus._M_p != paVar7) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.name_._M_dataplus._M_p != paVar8) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name_string._M_dataplus._M_p != &name_string.field_2) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}\n\n" comment comment comment comment comment comment (function_definition "void script_add_library(void *closurev,char *name,size_t length)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  Parser_closure *closure;\n  undefined4 *puVar4;\n  pointer pcVar5;\n  pointer pcVar6;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar7;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar8;\n  Input_file_argument file;\n  string name_string;\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  name_string._M_dataplus._M_p = (pointer)&name_string.field_2;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(&name_string,name,name + length,0);\n  if (*name_string._M_dataplus._M_p != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  paVar8 = &file.name_.field_2;\n  pcVar6 = name_string._M_dataplus._M_p + 1;\n  file.name_._M_dataplus._M_p = (pointer)paVar8;\n  if (pcVar6 == (pointer)0x0) {\n    pcVar5 = (pointer)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(&file,pcVar6,pcVar5,0);\n  paVar7 = &file.extra_search_path_.field_2;\n  file.type_ = INPUT_FILE_TYPE_LIBRARY;\n  file.extra_search_path_._M_dataplus._M_p = (pointer)paVar7;\n                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */\n  (*(code *)puVar1)(&file.extra_search_path_,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  file.options_._0_4_ = *(undefined4 *)((int)closurev + 4);\n  file.options_.format_enum_ = *(Object_format *)((int)closurev + 8);\n  file.options_._8_4_ = *(undefined4 *)((int)closurev + 0xc);\n  file.options_.incremental_disposition_ = *(Incremental_disposition *)((int)closurev + 0x10);\n  puVar4 = *(undefined4 **)((int)closurev + 0x4c);\n  file.just_symbols_ = false;\n  file.arg_serial_ = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)((int)closurev + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */\n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,&file);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)((int)closurev + 0x50);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.extra_search_path_._M_dataplus._M_p != paVar7) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.name_._M_dataplus._M_p != paVar8) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name_string._M_dataplus._M_p != &name_string.field_2) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" primitive_type (function_declarator "script_add_library(void *closurev,char *name,size_t length)" identifier (parameter_list "(void *closurev,char *name,size_t length)" ( (parameter_declaration "void *closurev" primitive_type (pointer_declarator "*closurev" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "size_t length" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  Parser_closure *closure;\n  undefined4 *puVar4;\n  pointer pcVar5;\n  pointer pcVar6;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar7;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar8;\n  Input_file_argument file;\n  string name_string;\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  name_string._M_dataplus._M_p = (pointer)&name_string.field_2;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(&name_string,name,name + length,0);\n  if (*name_string._M_dataplus._M_p != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  paVar8 = &file.name_.field_2;\n  pcVar6 = name_string._M_dataplus._M_p + 1;\n  file.name_._M_dataplus._M_p = (pointer)paVar8;\n  if (pcVar6 == (pointer)0x0) {\n    pcVar5 = (pointer)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(&file,pcVar6,pcVar5,0);\n  paVar7 = &file.extra_search_path_.field_2;\n  file.type_ = INPUT_FILE_TYPE_LIBRARY;\n  file.extra_search_path_._M_dataplus._M_p = (pointer)paVar7;\n                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */\n  (*(code *)puVar1)(&file.extra_search_path_,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  file.options_._0_4_ = *(undefined4 *)((int)closurev + 4);\n  file.options_.format_enum_ = *(Object_format *)((int)closurev + 8);\n  file.options_._8_4_ = *(undefined4 *)((int)closurev + 0xc);\n  file.options_.incremental_disposition_ = *(Incremental_disposition *)((int)closurev + 0x10);\n  puVar4 = *(undefined4 **)((int)closurev + 0x4c);\n  file.just_symbols_ = false;\n  file.arg_serial_ = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)((int)closurev + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */\n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,&file);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)((int)closurev + 0x50);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.extra_search_path_._M_dataplus._M_p != paVar7) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.name_._M_dataplus._M_p != paVar8) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name_string._M_dataplus._M_p != &name_string.field_2) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Parser_closure *closure;" type_identifier (pointer_declarator "*closure" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "pointer pcVar5;" type_identifier identifier ;) (declaration "pointer pcVar6;" type_identifier identifier ;) (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) : :) (expression_statement "allocator<char>_>_9\n  *paVar7;" (binary_expression "allocator<char>_>_9\n  *paVar7" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar7" identifier * identifier)) ;) (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) : :) (expression_statement "allocator<char>_>_9\n  *paVar8;" (binary_expression "allocator<char>_>_9\n  *paVar8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar8" identifier * identifier)) ;) (declaration "Input_file_argument file;" type_identifier identifier ;) (declaration "string name_string;" type_identifier identifier ;) (expression_statement "puVar1 = PTR__M_construct<char_const*>_004c1b68;" (assignment_expression "puVar1 = PTR__M_construct<char_const*>_004c1b68" identifier = (binary_expression "PTR__M_construct<char_const*>_004c1b68" (binary_expression "PTR__M_construct<char_const" identifier < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "name_string._M_dataplus._M_p = (pointer)&name_string.field_2;" (assignment_expression "name_string._M_dataplus._M_p = (pointer)&name_string.field_2" (field_expression "name_string._M_dataplus._M_p" (field_expression "name_string._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&name_string.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "name_string.field_2" identifier . field_identifier))) ;) (expression_statement "(*(code *)PTR__M_construct<char_const*>_004c1b68)(&name_string,name,name + length,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)(&name_string,name,name + length,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_004c1b68" (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 "(&name_string,name,name + length,0)" ( (pointer_expression "&name_string" & identifier) , identifier , (binary_expression "name + length" identifier + identifier) , number_literal ))) ;) (if_statement "if (*name_string._M_dataplus._M_p != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" if (parenthesized_expression "(*name_string._M_dataplus._M_p != 'l')" ( (binary_expression "*name_string._M_dataplus._M_p != 'l'" (pointer_expression "*name_string._M_dataplus._M_p" * (field_expression "name_string._M_dataplus._M_p" (field_expression "name_string._M_dataplus" identifier . field_identifier) . field_identifier)) != (char_literal "'l'" ' character ')) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */\n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x11e4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x11e4" identifier + number_literal) )))) ;) comment (expression_statement "(*(code *)PTR_gold_error_004c1a2c)(uVar2);" (call_expression "(*(code *)PTR_gold_error_004c1a2c)(uVar2)" (parenthesized_expression "(*(code *)PTR_gold_error_004c1a2c)" ( (pointer_expression "*(code *)PTR_gold_error_004c1a2c" * (cast_expression "(code *)PTR_gold_error_004c1a2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2)" ( identifier ))) ;) })) (expression_statement "paVar8 = &file.name_.field_2;" (assignment_expression "paVar8 = &file.name_.field_2" identifier = (pointer_expression "&file.name_.field_2" & (field_expression "file.name_.field_2" (field_expression "file.name_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "pcVar6 = name_string._M_dataplus._M_p + 1;" (assignment_expression "pcVar6 = name_string._M_dataplus._M_p + 1" identifier = (binary_expression "name_string._M_dataplus._M_p + 1" (field_expression "name_string._M_dataplus._M_p" (field_expression "name_string._M_dataplus" identifier . field_identifier) . field_identifier) + number_literal)) ;) (expression_statement "file.name_._M_dataplus._M_p = (pointer)paVar8;" (assignment_expression "file.name_._M_dataplus._M_p = (pointer)paVar8" (field_expression "file.name_._M_dataplus._M_p" (field_expression "file.name_._M_dataplus" (field_expression "file.name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (pcVar6 == (pointer)0x0) {\n    pcVar5 = (pointer)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" if (parenthesized_expression "(pcVar6 == (pointer)0x0)" ( (binary_expression "pcVar6 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    pcVar5 = (pointer)0xffffffff;\n  }" { (expression_statement "pcVar5 = (pointer)0xffffffff;" (assignment_expression "pcVar5 = (pointer)0xffffffff" identifier = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6)" identifier = (call_expression "(*(code *)PTR_strlen_004c5b9c)(pcVar6)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" ( (pointer_expression "*(code *)PTR_strlen_004c5b9c" * (cast_expression "(code *)PTR_strlen_004c5b9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "pcVar5 = pcVar6 + iVar3;" (assignment_expression "pcVar5 = pcVar6 + iVar3" identifier = (binary_expression "pcVar6 + iVar3" identifier + identifier)) ;) }))) (expression_statement "(*(code *)puVar1)(&file,pcVar6,pcVar5,0);" (call_expression "(*(code *)puVar1)(&file,pcVar6,pcVar5,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&file,pcVar6,pcVar5,0)" ( (pointer_expression "&file" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "paVar7 = &file.extra_search_path_.field_2;" (assignment_expression "paVar7 = &file.extra_search_path_.field_2" identifier = (pointer_expression "&file.extra_search_path_.field_2" & (field_expression "file.extra_search_path_.field_2" (field_expression "file.extra_search_path_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "file.type_ = INPUT_FILE_TYPE_LIBRARY;" (assignment_expression "file.type_ = INPUT_FILE_TYPE_LIBRARY" (field_expression "file.type_" identifier . field_identifier) = identifier) ;) (expression_statement "file.extra_search_path_._M_dataplus._M_p = (pointer)paVar7;" (assignment_expression "file.extra_search_path_._M_dataplus._M_p = (pointer)paVar7" (field_expression "file.extra_search_path_._M_dataplus._M_p" (field_expression "file.extra_search_path_._M_dataplus" (field_expression "file.extra_search_path_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar7" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) comment (expression_statement "(*(code *)puVar1)(&file.extra_search_path_,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);" (call_expression "(*(code *)puVar1)(&file.extra_search_path_,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&file.extra_search_path_,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" ( (pointer_expression "&file.extra_search_path_" & (field_expression "file.extra_search_path_" identifier . field_identifier)) , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" identifier + number_literal) , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" identifier + number_literal) , number_literal ))) ;) (expression_statement "file.options_._0_4_ = *(undefined4 *)((int)closurev + 4);" (assignment_expression "file.options_._0_4_ = *(undefined4 *)((int)closurev + 4)" (field_expression "file.options_._0_4_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)closurev + 4)" * (cast_expression "(undefined4 *)((int)closurev + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 4)" ( (binary_expression "(int)closurev + 4" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "file.options_.format_enum_ = *(Object_format *)((int)closurev + 8);" (assignment_expression "file.options_.format_enum_ = *(Object_format *)((int)closurev + 8)" (field_expression "file.options_.format_enum_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(Object_format *)((int)closurev + 8)" * (cast_expression "(Object_format *)((int)closurev + 8)" ( (type_descriptor "Object_format *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 8)" ( (binary_expression "(int)closurev + 8" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "file.options_._8_4_ = *(undefined4 *)((int)closurev + 0xc);" (assignment_expression "file.options_._8_4_ = *(undefined4 *)((int)closurev + 0xc)" (field_expression "file.options_._8_4_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)closurev + 0xc)" * (cast_expression "(undefined4 *)((int)closurev + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 0xc)" ( (binary_expression "(int)closurev + 0xc" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "file.options_.incremental_disposition_ = *(Incremental_disposition *)((int)closurev + 0x10);" (assignment_expression "file.options_.incremental_disposition_ = *(Incremental_disposition *)((int)closurev + 0x10)" (field_expression "file.options_.incremental_disposition_" (field_expression "file.options_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(Incremental_disposition *)((int)closurev + 0x10)" * (cast_expression "(Incremental_disposition *)((int)closurev + 0x10)" ( (type_descriptor "Incremental_disposition *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 0x10)" ( (binary_expression "(int)closurev + 0x10" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)((int)closurev + 0x4c);" (assignment_expression "puVar4 = *(undefined4 **)((int)closurev + 0x4c)" identifier = (pointer_expression "*(undefined4 **)((int)closurev + 0x4c)" * (cast_expression "(undefined4 **)((int)closurev + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)closurev + 0x4c)" ( (binary_expression "(int)closurev + 0x4c" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "file.just_symbols_ = false;" (assignment_expression "file.just_symbols_ = false" (field_expression "file.just_symbols_" identifier . field_identifier) = false) ;) (expression_statement "file.arg_serial_ = 0;" (assignment_expression "file.arg_serial_ = 0" (field_expression "file.arg_serial_" identifier . field_identifier) = number_literal) ;) (if_statement "if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)((int)closurev + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" if (parenthesized_expression "(puVar4 == (undefined4 *)0x0)" ( (binary_expression "puVar4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)((int)closurev + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*(undefined4 **)((int)closurev + 0x4c) = puVar4;" (assignment_expression "*(undefined4 **)((int)closurev + 0x4c) = puVar4" (pointer_expression "*(undefined4 **)((int)closurev + 0x4c)" * (cast_expression "(undefined4 **)((int)closurev + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)closurev + 0x4c)" ( (binary_expression "(int)closurev + 0x4c" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar4 + 3) = 0;" (assignment_expression "*(undefined2 *)(puVar4 + 3) = 0" (pointer_expression "*(undefined2 *)(puVar4 + 3)" * (cast_expression "(undefined2 *)(puVar4 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 3)" ( (binary_expression "puVar4 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) })) comment (expression_statement "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,&file);" (assignment_expression "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,&file)" identifier = (call_expression "(*(code *)PTR_add_file_004c25bc)(puVar4,&file)" (parenthesized_expression "(*(code *)PTR_add_file_004c25bc)" ( (pointer_expression "*(code *)PTR_add_file_004c25bc" * (cast_expression "(code *)PTR_add_file_004c25bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,&file)" ( identifier , (pointer_expression "&file" & identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)((int)closurev + 0x50);" (assignment_expression "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)((int)closurev + 0x50)" (pointer_expression "*(undefined4 *)(iVar3 + 0x58)" * (cast_expression "(undefined4 *)(iVar3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)closurev + 0x50)" * (cast_expression "(undefined4 *)((int)closurev + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 0x50)" ( (binary_expression "(int)closurev + 0x50" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.extra_search_path_._M_dataplus._M_p != paVar7) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.extra_search_path_._M_dataplus._M_p != paVar7)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.extra_search_path_._M_dataplus._M_p != paVar7)" ( (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       *)file.extra_search_path_._M_dataplus._M_p != paVar7" (binary_expression "allocator<char>_>_9\n       *)file.extra_search_path_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)file.extra_search_path_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "file.extra_search_path_._M_dataplus._M_p" (field_expression "file.extra_search_path_._M_dataplus" (field_expression "file.extra_search_path_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.name_._M_dataplus._M_p != paVar8) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.name_._M_dataplus._M_p != paVar8)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)file.name_._M_dataplus._M_p != paVar8)" ( (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       *)file.name_._M_dataplus._M_p != paVar8" (binary_expression "allocator<char>_>_9\n       *)file.name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)file.name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "file.name_._M_dataplus._M_p" (field_expression "file.name_._M_dataplus" (field_expression "file.name_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name_string._M_dataplus._M_p != &name_string.field_2) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name_string._M_dataplus._M_p != &name_string.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name_string._M_dataplus._M_p != &name_string.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       *)name_string._M_dataplus._M_p != &name_string.field_2" (binary_expression "allocator<char>_>_9\n       *)name_string._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)name_string._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "name_string._M_dataplus._M_p" (field_expression "name_string._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&name_string.field_2" & (field_expression "name_string.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void script_add_library(int param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    \n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    \n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}\n\n" (function_definition "void script_add_library(int param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    \n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    \n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" primitive_type (function_declarator "script_add_library(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    \n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    \n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined1 *local_88 [2];" type_identifier (pointer_declarator "*local_88 [2]" * (array_declarator "local_88 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_80 [16];" type_identifier (array_declarator "auStack_80 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined1 *local_6c [2];" type_identifier (pointer_declarator "*local_6c [2]" * (array_declarator "local_6c [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_64 [16];" type_identifier (array_declarator "auStack_64 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "char *local_3c [2];" primitive_type (pointer_declarator "*local_3c [2]" * (array_declarator "local_3c [2]" identifier [ number_literal ])) ;) (declaration "char local_34 [24];" primitive_type (array_declarator "local_34 [24]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR__M_construct<char_const*>_004c1b68;" (assignment_expression "puVar1 = PTR__M_construct<char_const*>_004c1b68" identifier = (binary_expression "PTR__M_construct<char_const*>_004c1b68" (binary_expression "PTR__M_construct<char_const" identifier < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "local_3c[0] = local_34;" (assignment_expression "local_3c[0] = local_34" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)" ( (binary_expression "*(code *)PTR__M_construct<char_const*>_004c1b68" (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_3c,param_2,param_2 + param_3,0)" ( identifier , identifier , (binary_expression "param_2 + param_3" identifier + identifier) , number_literal ))) ;) (if_statement "if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" if (parenthesized_expression "(*local_3c[0] != 'l')" ( (binary_expression "*local_3c[0] != 'l'" (pointer_expression "*local_3c[0]" * (subscript_expression "local_3c[0]" identifier [ number_literal ])) != (char_literal "'l'" ' character ')) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" { (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" identifier = (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" ( (pointer_expression "*(code *)PTR_gettext_004c5c30" * (cast_expression "(code *)PTR_gettext_004c5c30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x11e4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x11e4" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_error_004c1a2c)(uVar2);" (call_expression "(*(code *)PTR_gold_error_004c1a2c)(uVar2)" (parenthesized_expression "(*(code *)PTR_gold_error_004c1a2c)" ( (pointer_expression "*(code *)PTR_gold_error_004c1a2c" * (cast_expression "(code *)PTR_gold_error_004c1a2c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2)" ( identifier ))) ;) })) (expression_statement "pcVar6 = local_3c[0] + 1;" (assignment_expression "pcVar6 = local_3c[0] + 1" identifier = (binary_expression "local_3c[0] + 1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "local_88[0] = auStack_80;" (assignment_expression "local_88[0] = auStack_80" (subscript_expression "local_88[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar5 = (char *)0xffffffff;" (assignment_expression "pcVar5 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6)" identifier = (call_expression "(*(code *)PTR_strlen_004c5b9c)(pcVar6)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" ( (pointer_expression "*(code *)PTR_strlen_004c5b9c" * (cast_expression "(code *)PTR_strlen_004c5b9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "pcVar5 = pcVar6 + iVar3;" (assignment_expression "pcVar5 = pcVar6 + iVar3" identifier = (binary_expression "pcVar6 + iVar3" identifier + identifier)) ;) }))) (expression_statement "(*(code *)puVar1)(local_88,pcVar6,pcVar5,0);" (call_expression "(*(code *)puVar1)(local_88,pcVar6,pcVar5,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_88,pcVar6,pcVar5,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) (expression_statement "local_6c[0] = auStack_64;" (assignment_expression "local_6c[0] = auStack_64" (subscript_expression "local_6c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);" (call_expression "(*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" ( identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" identifier + number_literal) , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" identifier + number_literal) , number_literal ))) ;) (expression_statement "local_50 = *(undefined4 *)(param_1 + 4);" (assignment_expression "local_50 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_4c = *(undefined4 *)(param_1 + 8);" (assignment_expression "local_4c = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_48 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "local_48 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_44 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "local_44 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = *(undefined4 **)(param_1 + 0x4c);" (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 0x4c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" if (parenthesized_expression "(puVar4 == (undefined4 *)0x0)" ( (binary_expression "puVar4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" { (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "*(undefined4 **)(param_1 + 0x4c) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x4c) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" * (cast_expression "(undefined4 **)(param_1 + 0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar4 + 3) = 0;" (assignment_expression "*(undefined2 *)(puVar4 + 3) = 0" (pointer_expression "*(undefined2 *)(puVar4 + 3)" * (cast_expression "(undefined2 *)(puVar4 + 3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 3)" ( (binary_expression "puVar4 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);" (assignment_expression "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88)" identifier = (call_expression "(*(code *)PTR_add_file_004c25bc)(puVar4,local_88)" (parenthesized_expression "(*(code *)PTR_add_file_004c25bc)" ( (pointer_expression "*(code *)PTR_add_file_004c25bc" * (cast_expression "(code *)PTR_add_file_004c25bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,local_88)" ( identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50)" (pointer_expression "*(undefined4 *)(iVar3 + 0x58)" * (cast_expression "(undefined4 *)(iVar3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_6c[0] != auStack_64)" ( (binary_expression "local_6c[0] != auStack_64" (subscript_expression "local_6c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_88[0] != auStack_80)" ( (binary_expression "local_88[0] != auStack_80" (subscript_expression "local_88[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_3c[0] != local_34)" ( (binary_expression "local_3c[0] != local_34" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) (ERROR *) > 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 + IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , 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 = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ( ))) ;) })) (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 ( ))) ;) })) (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 ;) })))
(function_definition "void script_add_library(int param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    \n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    \n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "script_add_library(int param_1,int param_2,int param_3)" (identifier "script_add_library") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined1 *local_88 [2];\n  undefined1 auStack_80 [16];\n  undefined4 local_70;\n  undefined1 *local_6c [2];\n  undefined1 auStack_64 [16];\n  undefined1 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  char *local_3c [2];\n  char local_34 [24];\n  \n  puVar1 = PTR__M_construct<char_const*>_004c1b68;\n  local_3c[0] = local_34;\n  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);\n  if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }\n  pcVar6 = local_3c[0] + 1;\n  local_88[0] = auStack_80;\n  if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }\n  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);\n  local_70 = 1;\n  local_6c[0] = auStack_64;\n                    \n  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);\n  local_50 = *(undefined4 *)(param_1 + 4);\n  local_4c = *(undefined4 *)(param_1 + 8);\n  local_48 = *(undefined4 *)(param_1 + 0xc);\n  local_44 = *(undefined4 *)(param_1 + 0x10);\n  puVar4 = *(undefined4 **)(param_1 + 0x4c);\n  local_54 = 0;\n  local_40 = 0;\n  if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }\n                    \n  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);\n  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);\n  if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined1 *local_88 [2];" (type_identifier "undefined1") (pointer_declarator "*local_88 [2]" (* "*") (array_declarator "local_88 [2]" (identifier "local_88") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 auStack_80 [16];" (type_identifier "undefined1") (array_declarator "auStack_80 [16]" (identifier "auStack_80") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined1 *local_6c [2];" (type_identifier "undefined1") (pointer_declarator "*local_6c [2]" (* "*") (array_declarator "local_6c [2]" (identifier "local_6c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 auStack_64 [16];" (type_identifier "undefined1") (array_declarator "auStack_64 [16]" (identifier "auStack_64") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 local_54;" (type_identifier "undefined1") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "char *local_3c [2];" (primitive_type "char") (pointer_declarator "*local_3c [2]" (* "*") (array_declarator "local_3c [2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "char local_34 [24];" (primitive_type "char") (array_declarator "local_34 [24]" (identifier "local_34") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "puVar1 = PTR__M_construct<char_const*>_004c1b68;" (assignment_expression "puVar1 = PTR__M_construct<char_const*>_004c1b68" (identifier "puVar1") (= "=") (binary_expression "PTR__M_construct<char_const*>_004c1b68" (binary_expression "PTR__M_construct<char_const" (identifier "PTR__M_construct") (< "<") (identifier "char_const")) (ERROR "*" (* "*")) (> ">") (identifier "_004c1b68"))) (; ";")) (expression_statement "local_3c[0] = local_34;" (assignment_expression "local_3c[0] = local_34" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "(*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);" (call_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char_const*>_004c1b68)" (( "(") (binary_expression "*(code *)PTR__M_construct<char_const*>_004c1b68" (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 "_004c1b68")) () ")")) (argument_list "(local_3c,param_2,param_2 + param_3,0)" (( "(") (identifier "local_3c") (, ",") (identifier "param_2") (, ",") (binary_expression "param_2 + param_3" (identifier "param_2") (+ "+") (identifier "param_3")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*local_3c[0] != 'l') {\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" (if "if") (parenthesized_expression "(*local_3c[0] != 'l')" (( "(") (binary_expression "*local_3c[0] != 'l'" (pointer_expression "*local_3c[0]" (* "*") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (char_literal "'l'" (' "'") (character "l") (' "'"))) () ")")) (compound_statement "{\n    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);\n                    \n    (*(code *)PTR_gold_error_004c1a2c)(uVar2);\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);" (assignment_expression "uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4)" (parenthesized_expression "(*(code *)PTR_gettext_004c5c30)" (( "(") (pointer_expression "*(code *)PTR_gettext_004c5c30" (* "*") (cast_expression "(code *)PTR_gettext_004c5c30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_004c5c30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x11e4)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x11e4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x11e4")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_gold_error_004c1a2c)(uVar2);" (call_expression "(*(code *)PTR_gold_error_004c1a2c)(uVar2)" (parenthesized_expression "(*(code *)PTR_gold_error_004c1a2c)" (( "(") (pointer_expression "*(code *)PTR_gold_error_004c1a2c" (* "*") (cast_expression "(code *)PTR_gold_error_004c1a2c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_error_004c1a2c"))) () ")")) (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar6 = local_3c[0] + 1;" (assignment_expression "pcVar6 = local_3c[0] + 1" (identifier "pcVar6") (= "=") (binary_expression "local_3c[0] + 1" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_88[0] = auStack_80;" (assignment_expression "local_88[0] = auStack_80" (subscript_expression "local_88[0]" (identifier "local_88") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "auStack_80")) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\n    pcVar5 = (char *)0xffffffff;\n  }\n  else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar5 = (char *)0xffffffff;\n  }" ({ "{") (expression_statement "pcVar5 = (char *)0xffffffff;" (assignment_expression "pcVar5 = (char *)0xffffffff" (identifier "pcVar5") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" (else "else") (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);\n    pcVar5 = pcVar6 + iVar3;\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strlen_004c5b9c)(pcVar6)" (parenthesized_expression "(*(code *)PTR_strlen_004c5b9c)" (( "(") (pointer_expression "*(code *)PTR_strlen_004c5b9c" (* "*") (cast_expression "(code *)PTR_strlen_004c5b9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_004c5b9c"))) () ")")) (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")")))) (; ";")) (expression_statement "pcVar5 = pcVar6 + iVar3;" (assignment_expression "pcVar5 = pcVar6 + iVar3" (identifier "pcVar5") (= "=") (binary_expression "pcVar6 + iVar3" (identifier "pcVar6") (+ "+") (identifier "iVar3"))) (; ";")) (} "}")))) (expression_statement "(*(code *)puVar1)(local_88,pcVar6,pcVar5,0);" (call_expression "(*(code *)puVar1)(local_88,pcVar6,pcVar5,0)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(local_88,pcVar6,pcVar5,0)" (( "(") (identifier "local_88") (, ",") (identifier "pcVar6") (, ",") (identifier "pcVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" (identifier "local_70") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_6c[0] = auStack_64;" (assignment_expression "local_6c[0] = auStack_64" (subscript_expression "local_6c[0]" (identifier "local_6c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "auStack_64")) (; ";")) (expression_statement "(*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);" (call_expression "(*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,\n                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0)" (( "(") (identifier "local_6c") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x6db8")) (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x6db8" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x6db8")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_50 = *(undefined4 *)(param_1 + 4);" (assignment_expression "local_50 = *(undefined4 *)(param_1 + 4)" (identifier "local_50") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_4c = *(undefined4 *)(param_1 + 8);" (assignment_expression "local_4c = *(undefined4 *)(param_1 + 8)" (identifier "local_4c") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_48 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "local_48 = *(undefined4 *)(param_1 + 0xc)" (identifier "local_48") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_44 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "local_44 = *(undefined4 *)(param_1 + 0x10)" (identifier "local_44") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(param_1 + 0x4c);" (assignment_expression "puVar4 = *(undefined4 **)(param_1 + 0x4c)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar4 == (undefined4 *)0x0) {\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" (if "if") (parenthesized_expression "(puVar4 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 == (undefined4 *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n    *(undefined4 **)(param_1 + 0x4c) = puVar4;\n    *puVar4 = 0;\n    puVar4[1] = 0;\n    puVar4[2] = 0;\n    *(undefined2 *)(puVar4 + 3) = 0;\n    puVar4[4] = 0;\n  }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x4c) = puVar4;" (assignment_expression "*(undefined4 **)(param_1 + 0x4c) = puVar4" (pointer_expression "*(undefined4 **)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar4 + 3) = 0;" (assignment_expression "*(undefined2 *)(puVar4 + 3) = 0" (pointer_expression "*(undefined2 *)(puVar4 + 3)" (* "*") (cast_expression "(undefined2 *)(puVar4 + 3)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 3)" (( "(") (binary_expression "puVar4 + 3" (identifier "puVar4") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);" (assignment_expression "iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_add_file_004c25bc)(puVar4,local_88)" (parenthesized_expression "(*(code *)PTR_add_file_004c25bc)" (( "(") (pointer_expression "*(code *)PTR_add_file_004c25bc" (* "*") (cast_expression "(code *)PTR_add_file_004c25bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_add_file_004c25bc"))) () ")")) (argument_list "(puVar4,local_88)" (( "(") (identifier "puVar4") (, ",") (identifier "local_88") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "*(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50)" (pointer_expression "*(undefined4 *)(iVar3 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (if_statement "if (local_6c[0] != auStack_64) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_6c[0] != auStack_64)" (( "(") (binary_expression "local_6c[0] != auStack_64" (subscript_expression "local_6c[0]" (identifier "local_6c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_64")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_88[0] != auStack_80) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_88[0] != auStack_80)" (( "(") (binary_expression "local_88[0] != auStack_80" (subscript_expression "local_88[0]" (identifier "local_88") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_80")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_3c[0] != local_34) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_3c[0] != local_34)" (( "(") (binary_expression "local_3c[0] != local_34" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_34")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "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: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) 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: (identifier)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (character)))) consequence: (compound_statement (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 (binary_expression left: (identifier) right: (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 (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (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 (identifier) (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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 (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (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: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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) (identifier))))) (expression_statement (assignment_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: (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))))))) (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))))) (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))))) (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))))

void MASKED(int param_1,int param_2,int param_3)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  char *pcVar5;
  char *pcVar6;
  undefined1 *local_88 [2];
  undefined1 auStack_80 [16];
  undefined4 local_70;
  undefined1 *local_6c [2];
  undefined1 auStack_64 [16];
  undefined1 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  char *local_3c [2];
  char local_34 [24];
  
  puVar1 = PTR__M_construct<char_const*>_004c1b68;
  local_3c[0] = local_34;
  (*(code *)PTR__M_construct<char_const*>_004c1b68)(local_3c,param_2,param_2 + param_3,0);
  if (*local_3c[0] != 'l') {
    uVar2 = (*(code *)PTR_gettext_004c5c30)(PTR_s_in_a_linker_script_004c191c + 0x11e4);
                    /* try { // try from 002a7f58 to 002a7fa3 has its CatchHandler @ 002a8124 */
    (*(code *)PTR_gold_error_004c1a2c)(uVar2);
  }
  pcVar6 = local_3c[0] + 1;
  local_88[0] = auStack_80;
  if (pcVar6 == (char *)0x0) {
    pcVar5 = (char *)0xffffffff;
  }
  else {
    iVar3 = (*(code *)PTR_strlen_004c5b9c)(pcVar6);
    pcVar5 = pcVar6 + iVar3;
  }
  (*(code *)puVar1)(local_88,pcVar6,pcVar5,0);
  local_70 = 1;
  local_6c[0] = auStack_64;
                    /* try { // try from 002a7fd0 to 002a7fd7 has its CatchHandler @ 002a8100 */
  (*(code *)puVar1)(local_6c,PTR_s_in_a_linker_script_004c191c + 0x6db8,
                    PTR_s_in_a_linker_script_004c191c + 0x6db8,0);
  local_50 = *(undefined4 *)(param_1 + 4);
  local_4c = *(undefined4 *)(param_1 + 8);
  local_48 = *(undefined4 *)(param_1 + 0xc);
  local_44 = *(undefined4 *)(param_1 + 0x10);
  puVar4 = *(undefined4 **)(param_1 + 0x4c);
  local_54 = 0;
  local_40 = 0;
  if (puVar4 == (undefined4 *)0x0) {
    puVar4 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x14);
    *(undefined4 **)(param_1 + 0x4c) = puVar4;
    *puVar4 = 0;
    puVar4[1] = 0;
    puVar4[2] = 0;
    *(undefined2 *)(puVar4 + 3) = 0;
    puVar4[4] = 0;
  }
                    /* try { // try from 002a8010 to 002a809f has its CatchHandler @ 002a80c4 */
  iVar3 = (*(code *)PTR_add_file_004c25bc)(puVar4,local_88);
  *(undefined4 *)(iVar3 + 0x58) = *(undefined4 *)(param_1 + 0x50);
  if (local_6c[0] != auStack_64) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_88[0] != auStack_80) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_3c[0] != local_34) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return;
}

