
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void gc_mark_undef_symbols(Symbol_table * this, Layout * layout) */

void __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *layout)

{
  undefined *puVar1;
  int iVar2;
  Script_options *pSVar3;
  Symbol *pSVar4;
  undefined4 uVar5;
  undefined *puVar6;
  int *piVar7;
  _Hash_node_base *p_Var8;
  
  puVar1 = PTR_parameters_004c19b4;
  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);
  if (iVar2 != 0) {
    piVar7 = *(int **)(iVar2 + 0x42a0);
    if (piVar7 == (int *)0x0) {
      piVar7 = *(int **)(iVar2 + 0x1344);
    }
    else {
      do {
        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);
        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;
        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {
          puVar6 = PTR_s_in_a_linker_script_004c191c;
          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;
          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_end_of_storage) {
            gc_mark_symbol(this,pSVar4);
          }
        }
        iVar2 = *(int *)(*(int *)puVar1 + 8);
        piVar7 = (int *)*piVar7;
        if (iVar2 == 0) goto LAB_002b9120;
      } while (piVar7 != (int *)0x0);
      piVar7 = *(int **)(iVar2 + 0x1344);
    }
    if (piVar7 == (int *)0x0) {
      pSVar3 = layout->script_options_;
    }
    else {
      do {
        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);
        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {
          puVar6 = PTR_s_in_a_linker_script_004c191c;
          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;
          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_end_of_storage) {
            gc_mark_symbol(this,pSVar4);
          }
        }
        piVar7 = (int *)*piVar7;
        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;
      } while (piVar7 != (int *)0x0);
      pSVar3 = layout->script_options_;
    }
    p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt;
    do {
      while( true ) {
        if (p_Var8 == (_Hash_node_base *)0x0) {
          return;
        }
        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);
        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;
        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;
LAB_002b9094:
        p_Var8 = p_Var8->_M_nxt;
      }
      puVar6 = PTR_s_in_a_linker_script_004c191c;
      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;
      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].
               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
               _M_end_of_storage < 0) goto LAB_002b9094;
      gc_mark_symbol(this,pSVar4);
      p_Var8 = p_Var8->_M_nxt;
    } while( true );
  }
LAB_002b9120:
  puVar6 = PTR_s_in_a_linker_script_004c191c + 0x30d0;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar6);
LAB_002b913c:
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090);
LAB_002b9154:
  uVar5 = 0x263;
  do {
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,
               PTR_s_in_a_linker_script_004c191c + 0x3004);
LAB_002b9170:
    uVar5 = 0x282;
  } while( true );
}



/* WARNING: Type propagation algorithm not settling */
/* gold::Symbol_table::gc_mark_undef_symbols(gold::Layout*) */

void __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)

{
  undefined *puVar1;
  int iVar2;
  Symbol *pSVar3;
  undefined4 uVar4;
  undefined *puVar5;
  int *piVar6;
  
  puVar1 = PTR_parameters_004c19b4;
  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);
  if (iVar2 != 0) {
    piVar6 = *(int **)(iVar2 + 0x42a0);
    if (piVar6 == (int *)0x0) {
      piVar6 = *(int **)(iVar2 + 0x1344);
    }
    else {
      do {
        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);
        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;
        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {
          puVar5 = PTR_s_in_a_linker_script_004c191c;
          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;
          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {
            gc_mark_symbol(this,pSVar3);
          }
        }
        iVar2 = *(int *)(*(int *)puVar1 + 8);
        piVar6 = (int *)*piVar6;
        if (iVar2 == 0) goto LAB_002b9120;
      } while (piVar6 != (int *)0x0);
      piVar6 = *(int **)(iVar2 + 0x1344);
    }
    if (piVar6 == (int *)0x0) {
      iVar2 = *(int *)(param_1 + 4);
    }
    else {
      do {
        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);
        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {
          puVar5 = PTR_s_in_a_linker_script_004c191c;
          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;
          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {
            gc_mark_symbol(this,pSVar3);
          }
        }
        piVar6 = (int *)*piVar6;
        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;
      } while (piVar6 != (int *)0x0);
      iVar2 = *(int *)(param_1 + 4);
    }
    piVar6 = *(int **)(iVar2 + 0x48);
    do {
      while( true ) {
        if (piVar6 == (int *)0x0) {
          return;
        }
        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);
        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;
        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;
LAB_002b9094:
        piVar6 = (int *)*piVar6;
      }
      puVar5 = PTR_s_in_a_linker_script_004c191c;
      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;
      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;
      gc_mark_symbol(this,pSVar3);
      piVar6 = (int *)*piVar6;
    } while( true );
  }
LAB_002b9120:
  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);
LAB_002b913c:
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);
LAB_002b9154:
  uVar4 = 0x263;
  do {
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,
               PTR_s_in_a_linker_script_004c191c + 0x3004);
LAB_002b9170:
    uVar4 = 0x282;
  } while( true );
}


lui gp,0x21
addiu gp,gp,0x320
addu gp,gp,t9
addiu sp,sp,-0x38
sw s3,0x28(sp)
lw s3,-0x788c(gp)
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s5,0x30(sp)
lw v0,0x0(s3)
sw s4,0x2c(sp)
sw s2,0x24(sp)
sw s1,0x20(sp)
sw s0,0x1c(sp)
lw v0,0x8(v0)
beq v0,zero,0x002b9120
_or s1,a0,zero
lw s0,0x42a0(v0)
or s4,a1,zero
lw s2,-0x7400(gp)
bne s0,zero,0x002b8f98
_lw s5,-0x598c(gp)
b 0x002b8ffc
_lw s0,0x1344(v0)
lw v0,0x0(s3)
lw v0,0x8(v0)
beq v0,zero,0x002b9120
_lw s0,0x0(s0)
beq s0,zero,0x002b8ff0
_nop
lw a1,0x4(s0)
or a2,zero,zero
or t9,s2,zero
bal 0x002b88cc
_or a0,s1,zero
beq v0,zero,0x002b9154
_lw gp,0x10(sp)
lw v1,0x28(v0)
ext a0,v1,0xd,0x3
bne a0,zero,0x002b8f80
_andi v1,v1,0xe000
bne v1,zero,0x002b913c
_lw a2,-0x7924(gp)
lw v1,0x8(v0)
lw v1,0x2c(v1)
bltz v1,0x002b8f80
_or a1,v0,zero
or t9,s5,zero
bal 0x002b6ed8
_or a0,s1,zero
b 0x002b8f80
_lw gp,0x10(sp)
lw s0,0x1344(v0)
lw s2,-0x7400(gp)
lw s5,-0x598c(gp)
bne s0,zero,0x002b9024
_nop
b 0x002b9080
_lw v0,0x4(s4)
lw v0,0x0(s3)
lw v0,0x8(v0)
beq v0,zero,0x002b9120
_lw s0,0x0(s0)
beq s0,zero,0x002b907c
_nop
lw a1,0x4(s0)
or a2,zero,zero
or t9,s2,zero
bal 0x002b88cc
_or a0,s1,zero
beq v0,zero,0x002b900c
_lw gp,0x10(sp)
lw v1,0x28(v0)
ext a0,v1,0xd,0x3
bne a0,zero,0x002b900c
_andi v1,v1,0xe000
bne v1,zero,0x002b913c
_lw a2,-0x7924(gp)
lw v1,0x8(v0)
lw v1,0x2c(v1)
bltz v1,0x002b900c
_or a1,v0,zero
or t9,s5,zero
bal 0x002b6ed8
_or a0,s1,zero
b 0x002b900c
_lw gp,0x10(sp)
lw v0,0x4(s4)
lw s0,0x48(v0)
beq s0,zero,0x002b90fc
_lw s2,-0x7400(gp)
b 0x002b90a0
_lw s3,-0x598c(gp)
lw s0,0x0(s0)
beq s0,zero,0x002b9100
_lw ra,0x34(sp)
lw a1,0x4(s0)
or a2,zero,zero
or t9,s2,zero
bal 0x002b88cc
_or a0,s1,zero
beq v0,zero,0x002b9170
_lw gp,0x10(sp)
lw v1,0x28(v0)
ext a0,v1,0xd,0x3
bne a0,zero,0x002b9094
_andi v1,v1,0xe000
bne v1,zero,0x002b913c
_lw a2,-0x7924(gp)
lw v1,0x8(v0)
lw v1,0x2c(v1)
bltz v1,0x002b9094
_or a1,v0,zero
or t9,s3,zero
bal 0x002b6ed8
_or a0,s1,zero
lw s0,0x0(s0)
bne s0,zero,0x002b90a0
_nop
lw ra,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x38
lw a2,-0x7924(gp)
li a1,0x5c
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x30d0
jalr t9
_addiu a0,a0,-0x9b8
li a1,0xa1
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x3090
jalr t9
_addiu a0,a0,0x3860
li a1,0x263
lw a2,-0x7924(gp)
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x3004
jalr t9
_addiu a0,a0,0x24b0
b 0x002b9158
_li a1,0x282
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* gold::Symbol_table::gc_mark_undef_symbols(gold::Layout*) */\n\nvoid __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}\n\n" comment comment (function_definition "void __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)" identifier (parameter_list "(Symbol_table *this,Layout *param_1)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "Symbol *pSVar3;" type_identifier (pointer_declarator "*pSVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (expression_statement "puVar1 = PTR_parameters_004c19b4;" (assignment_expression "puVar1 = PTR_parameters_004c19b4" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }" { (expression_statement "piVar6 = *(int **)(iVar2 + 0x42a0);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x42a0)" identifier = (pointer_expression "*(int **)(iVar2 + 0x42a0)" * (cast_expression "(int **)(iVar2 + 0x42a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x42a0)" ( (binary_expression "iVar2 + 0x42a0" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" { (expression_statement "piVar6 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x1344)" identifier = (pointer_expression "*(int **)(iVar2 + 0x1344)" * (cast_expression "(int **)(iVar2 + 0x1344)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1344)" ( (binary_expression "iVar2 + 0x1344" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" else (compound_statement "{\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" { (do_statement "do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);" do (compound_statement "{\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      }" { (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" identifier = (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar6[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar6[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;" if (parenthesized_expression "(pSVar3 == (Symbol *)0x0)" ( (binary_expression "pSVar3 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002b9154;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) )) (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" { (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }" if (parenthesized_expression "(-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c))" ( (binary_expression "-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)" number_literal < (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" ( (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" * (cast_expression "(int *)(pSVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 8)" ( (binary_expression "pSVar3 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n            gc_mark_symbol(this,pSVar3);\n          }" { (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" identifier (argument_list "(this,pSVar3)" ( identifier , identifier ))) ;) })) })) (expression_statement "iVar2 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_002b9120;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002b9120;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar6 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x1344)" identifier = (pointer_expression "*(int **)(iVar2 + 0x1344)" * (cast_expression "(int **)(iVar2 + 0x1344)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1344)" ( (binary_expression "iVar2 + 0x1344" identifier + number_literal) ))))) ;) }))) (if_statement "if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = *(int *)(param_1 + 4);\n    }" { (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" else (compound_statement "{\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" { (do_statement "do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);" do (compound_statement "{\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      }" { (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" identifier = (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar6[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar6[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" if (parenthesized_expression "((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0))" ( (binary_expression "(pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" (parenthesized_expression "(pSVar3 != (Symbol *)0x0)" ( (binary_expression "pSVar3 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) ))) )) (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" { (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }" if (parenthesized_expression "(-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c))" ( (binary_expression "-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)" number_literal < (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" ( (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" * (cast_expression "(int *)(pSVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 8)" ( (binary_expression "pSVar3 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n            gc_mark_symbol(this,pSVar3);\n          }" { (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" identifier (argument_list "(this,pSVar3)" ( identifier , identifier ))) ;) })) })) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;" if (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) == 0" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002b9120;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }))) (expression_statement "piVar6 = *(int **)(iVar2 + 0x48);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x48)" identifier = (pointer_expression "*(int **)(iVar2 + 0x48)" * (cast_expression "(int **)(iVar2 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) ;) (do_statement "do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );" do (compound_statement "{\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    }" { (while_statement "while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }" { (if_statement "if (piVar6 == (int *)0x0) {\n          return;\n        }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" identifier = (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar6[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar6[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;" if (parenthesized_expression "(pSVar3 == (Symbol *)0x0)" ( (binary_expression "pSVar3 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002b9170;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002b9094:\n        piVar6 = (int *)*piVar6;" statement_identifier : (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;)) })) (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;" if (parenthesized_expression "(*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0)" ( (binary_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" ( (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" * (cast_expression "(int *)(pSVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 8)" ( (binary_expression "pSVar3 + 8" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_002b9094;" goto statement_identifier ;)) (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" identifier (argument_list "(this,pSVar3)" ( identifier , identifier ))) ;) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" statement_identifier : (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x30d0" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860" identifier + number_literal) , number_literal , (binary_expression "puVar5 + 0x3090" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002b9154:\n  uVar4 = 0x263;" statement_identifier : (expression_statement "uVar4 = 0x263;" (assignment_expression "uVar4 = 0x263" identifier = number_literal) ;)) (do_statement "do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );" do (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x24b0" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3004" identifier + number_literal) ))) ;) (labeled_statement "LAB_002b9170:\n    uVar4 = 0x282;" statement_identifier : (expression_statement "uVar4 = 0x282;" (assignment_expression "uVar4 = 0x282" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: void gc_mark_undef_symbols(Symbol_table * this, Layout * layout) */\n\nvoid __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *layout)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Script_options *pSVar3;\n  Symbol *pSVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int *piVar7;\n  _Hash_node_base *p_Var8;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar7 = *(int **)(iVar2 + 0x42a0);\n    if (piVar7 == (int *)0x0) {\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar7 == (int *)0x0) {\n      pSVar3 = layout->script_options_;\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }\n    p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt;\n    do {\n      while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }\n      puVar6 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar4);\n      p_Var8 = p_Var8->_M_nxt;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar6);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090);\nLAB_002b9154:\n  uVar5 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar5 = 0x282;\n  } while( true );\n}\n\n" comment comment comment comment comment comment comment (function_definition "void __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *layout)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Script_options *pSVar3;\n  Symbol *pSVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int *piVar7;\n  _Hash_node_base *p_Var8;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar7 = *(int **)(iVar2 + 0x42a0);\n    if (piVar7 == (int *)0x0) {\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar7 == (int *)0x0) {\n      pSVar3 = layout->script_options_;\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }\n    p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt;\n    do {\n      while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }\n      puVar6 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar4);\n      p_Var8 = p_Var8->_M_nxt;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar6);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090);\nLAB_002b9154:\n  uVar5 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar5 = 0x282;\n  } while( true );\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "gc_mark_undef_symbols(Symbol_table *this,Layout *layout)" identifier (parameter_list "(Symbol_table *this,Layout *layout)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  Script_options *pSVar3;\n  Symbol *pSVar4;\n  undefined4 uVar5;\n  undefined *puVar6;\n  int *piVar7;\n  _Hash_node_base *p_Var8;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar7 = *(int **)(iVar2 + 0x42a0);\n    if (piVar7 == (int *)0x0) {\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar7 == (int *)0x0) {\n      pSVar3 = layout->script_options_;\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }\n    p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt;\n    do {\n      while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }\n      puVar6 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar4);\n      p_Var8 = p_Var8->_M_nxt;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar6);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090);\nLAB_002b9154:\n  uVar5 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar5 = 0x282;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "Script_options *pSVar3;" type_identifier (pointer_declarator "*pSVar3" * identifier) ;) (declaration "Symbol *pSVar4;" type_identifier (pointer_declarator "*pSVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "_Hash_node_base *p_Var8;" type_identifier (pointer_declarator "*p_Var8" * identifier) ;) (expression_statement "puVar1 = PTR_parameters_004c19b4;" (assignment_expression "puVar1 = PTR_parameters_004c19b4" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n    piVar7 = *(int **)(iVar2 + 0x42a0);\n    if (piVar7 == (int *)0x0) {\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar7 == (int *)0x0) {\n      pSVar3 = layout->script_options_;\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }\n    p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt;\n    do {\n      while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }\n      puVar6 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar4);\n      p_Var8 = p_Var8->_M_nxt;\n    } while( true );\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar7 = *(int **)(iVar2 + 0x42a0);\n    if (piVar7 == (int *)0x0) {\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar7 == (int *)0x0) {\n      pSVar3 = layout->script_options_;\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }\n    p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt;\n    do {\n      while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }\n      puVar6 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar4);\n      p_Var8 = p_Var8->_M_nxt;\n    } while( true );\n  }" { (expression_statement "piVar7 = *(int **)(iVar2 + 0x42a0);" (assignment_expression "piVar7 = *(int **)(iVar2 + 0x42a0)" identifier = (pointer_expression "*(int **)(iVar2 + 0x42a0)" * (cast_expression "(int **)(iVar2 + 0x42a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x42a0)" ( (binary_expression "iVar2 + 0x42a0" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }" { (expression_statement "piVar7 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar7 = *(int **)(iVar2 + 0x1344)" identifier = (pointer_expression "*(int **)(iVar2 + 0x1344)" * (cast_expression "(int **)(iVar2 + 0x1344)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1344)" ( (binary_expression "iVar2 + 0x1344" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }" else (compound_statement "{\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      piVar7 = *(int **)(iVar2 + 0x1344);\n    }" { (do_statement "do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);" do (compound_statement "{\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar7 = (int *)*piVar7;\n        if (iVar2 == 0) goto LAB_002b9120;\n      }" { (expression_statement "pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);" (assignment_expression "pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0)" identifier = (call_expression "lookup(this,(char *)piVar7[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar7[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar7[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (pSVar4 == (Symbol *)0x0) goto LAB_002b9154;" if (parenthesized_expression "(pSVar4 == (Symbol *)0x0)" ( (binary_expression "pSVar4 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002b9154;" goto statement_identifier ;)) (if_statement "if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }" if (parenthesized_expression "((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)&pSVar4->field_0x28 << 0x10)" ( (binary_expression "*(uint *)&pSVar4->field_0x28 << 0x10" (pointer_expression "*(uint *)&pSVar4->field_0x28" * (cast_expression "(uint *)&pSVar4->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar4->field_0x28" & (field_expression "pSVar4->field_0x28" identifier -> field_identifier)))) << number_literal) )) >> number_literal) == number_literal) )) (compound_statement "{\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }" { (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0)" ( (binary_expression "(*(uint *)&pSVar4->field_0x28 & 0xe000) != 0" (parenthesized_expression "(*(uint *)&pSVar4->field_0x28 & 0xe000)" ( (binary_expression "*(uint *)&pSVar4->field_0x28 & 0xe000" (pointer_expression "*(uint *)&pSVar4->field_0x28" * (cast_expression "(uint *)&pSVar4->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar4->field_0x28" & (field_expression "pSVar4->field_0x28" identifier -> field_identifier)))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }" if (parenthesized_expression "(-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage)" ( (field_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage" (field_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base" number_literal < (cast_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base" (subscript_expression "((pSVar4->u1_).output_segment)->output_lists_[3]" (field_expression "((pSVar4->u1_).output_segment)->output_lists_" (parenthesized_expression "((pSVar4->u1_).output_segment)" ( (field_expression "(pSVar4->u1_).output_segment" (parenthesized_expression "(pSVar4->u1_)" ( (field_expression "pSVar4->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n            gc_mark_symbol(this,pSVar4);\n          }" { (expression_statement "gc_mark_symbol(this,pSVar4);" (call_expression "gc_mark_symbol(this,pSVar4)" identifier (argument_list "(this,pSVar4)" ( identifier , identifier ))) ;) })) })) (expression_statement "iVar2 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "piVar7 = (int *)*piVar7;" (assignment_expression "piVar7 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_002b9120;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002b9120;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar7 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar7 = *(int **)(iVar2 + 0x1344)" identifier = (pointer_expression "*(int **)(iVar2 + 0x1344)" * (cast_expression "(int **)(iVar2 + 0x1344)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1344)" ( (binary_expression "iVar2 + 0x1344" identifier + number_literal) ))))) ;) }))) (if_statement "if (piVar7 == (int *)0x0) {\n      pSVar3 = layout->script_options_;\n    }\n    else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pSVar3 = layout->script_options_;\n    }" { (expression_statement "pSVar3 = layout->script_options_;" (assignment_expression "pSVar3 = layout->script_options_" identifier = (field_expression "layout->script_options_" identifier -> field_identifier)) ;) }) (else_clause "else {\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }" else (compound_statement "{\n      do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);\n      pSVar3 = layout->script_options_;\n    }" { (do_statement "do {\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar7 != (int *)0x0);" do (compound_statement "{\n        pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);\n        if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }\n        piVar7 = (int *)*piVar7;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      }" { (expression_statement "pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0);" (assignment_expression "pSVar4 = lookup(this,(char *)piVar7[1],(char *)0x0)" identifier = (call_expression "lookup(this,(char *)piVar7[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar7[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar7[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if ((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)) {\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }" if (parenthesized_expression "((pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0))" ( (binary_expression "(pSVar4 != (Symbol *)0x0) && ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)" (parenthesized_expression "(pSVar4 != (Symbol *)0x0)" ( (binary_expression "pSVar4 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)&pSVar4->field_0x28 << 0x10)" ( (binary_expression "*(uint *)&pSVar4->field_0x28 << 0x10" (pointer_expression "*(uint *)&pSVar4->field_0x28" * (cast_expression "(uint *)&pSVar4->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar4->field_0x28" & (field_expression "pSVar4->field_0x28" identifier -> field_identifier)))) << number_literal) )) >> number_literal) == number_literal) ))) )) (compound_statement "{\n          puVar6 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }\n        }" { (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0)" ( (binary_expression "(*(uint *)&pSVar4->field_0x28 & 0xe000) != 0" (parenthesized_expression "(*(uint *)&pSVar4->field_0x28 & 0xe000)" ( (binary_expression "*(uint *)&pSVar4->field_0x28 & 0xe000" (pointer_expression "*(uint *)&pSVar4->field_0x28" * (cast_expression "(uint *)&pSVar4->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar4->field_0x28" & (field_expression "pSVar4->field_0x28" identifier -> field_identifier)))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage) {\n            gc_mark_symbol(this,pSVar4);\n          }" if (parenthesized_expression "(-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage)" ( (field_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage" (field_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base<gold" (binary_expression "-1 < (int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base" number_literal < (cast_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "((pSVar4->u1_).output_segment)->output_lists_[3].\n                        super__Vector_base" (subscript_expression "((pSVar4->u1_).output_segment)->output_lists_[3]" (field_expression "((pSVar4->u1_).output_segment)->output_lists_" (parenthesized_expression "((pSVar4->u1_).output_segment)" ( (field_expression "(pSVar4->u1_).output_segment" (parenthesized_expression "(pSVar4->u1_)" ( (field_expression "pSVar4->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n            gc_mark_symbol(this,pSVar4);\n          }" { (expression_statement "gc_mark_symbol(this,pSVar4);" (call_expression "gc_mark_symbol(this,pSVar4)" identifier (argument_list "(this,pSVar4)" ( identifier , identifier ))) ;) })) })) (expression_statement "piVar7 = (int *)*piVar7;" (assignment_expression "piVar7 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (if_statement "if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;" if (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) == 0" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002b9120;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pSVar3 = layout->script_options_;" (assignment_expression "pSVar3 = layout->script_options_" identifier = (field_expression "layout->script_options_" identifier -> field_identifier)) ;) }))) (expression_statement "p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt;" (assignment_expression "p_Var8 = (pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt" identifier = (field_expression "(pSVar3->symbol_references_)._M_h._M_before_begin._M_nxt" (field_expression "(pSVar3->symbol_references_)._M_h._M_before_begin" (field_expression "(pSVar3->symbol_references_)._M_h" (parenthesized_expression "(pSVar3->symbol_references_)" ( (field_expression "pSVar3->symbol_references_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (do_statement "do {\n      while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }\n      puVar6 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar4);\n      p_Var8 = p_Var8->_M_nxt;\n    } while( true );" do (compound_statement "{\n      while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }\n      puVar6 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;\n      if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar4);\n      p_Var8 = p_Var8->_M_nxt;\n    }" { (while_statement "while( true ) {\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }\n        pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);\n        if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;\n      }" { (if_statement "if (p_Var8 == (_Hash_node_base *)0x0) {\n          return;\n        }" if (parenthesized_expression "(p_Var8 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var8 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0);" (assignment_expression "pSVar4 = lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0)" identifier = (call_expression "lookup(this,(char *)p_Var8[1]._M_nxt,(char *)0x0)" identifier (argument_list "(this,(char *)p_Var8[1]._M_nxt,(char *)0x0)" ( identifier , (cast_expression "(char *)p_Var8[1]._M_nxt" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var8[1]._M_nxt" (subscript_expression "p_Var8[1]" identifier [ number_literal ]) . field_identifier)) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (pSVar4 == (Symbol *)0x0) goto LAB_002b9170;" if (parenthesized_expression "(pSVar4 == (Symbol *)0x0)" ( (binary_expression "pSVar4 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002b9170;" goto statement_identifier ;)) (if_statement "if ((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0) break;" if (parenthesized_expression "((*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)&pSVar4->field_0x28 << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)&pSVar4->field_0x28 << 0x10)" ( (binary_expression "*(uint *)&pSVar4->field_0x28 << 0x10" (pointer_expression "*(uint *)&pSVar4->field_0x28" * (cast_expression "(uint *)&pSVar4->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar4->field_0x28" & (field_expression "pSVar4->field_0x28" identifier -> field_identifier)))) << number_literal) )) >> number_literal) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002b9094:\n        p_Var8 = p_Var8->_M_nxt;" statement_identifier : (expression_statement "p_Var8 = p_Var8->_M_nxt;" (assignment_expression "p_Var8 = p_Var8->_M_nxt" identifier = (field_expression "p_Var8->_M_nxt" identifier -> field_identifier)) ;)) })) (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)&pSVar4->field_0x28 & 0xe000) != 0)" ( (binary_expression "(*(uint *)&pSVar4->field_0x28 & 0xe000) != 0" (parenthesized_expression "(*(uint *)&pSVar4->field_0x28 & 0xe000)" ( (binary_expression "*(uint *)&pSVar4->field_0x28 & 0xe000" (pointer_expression "*(uint *)&pSVar4->field_0x28" * (cast_expression "(uint *)&pSVar4->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar4->field_0x28" & (field_expression "pSVar4->field_0x28" identifier -> field_identifier)))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if ((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0) goto LAB_002b9094;" if (parenthesized_expression "((int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0)" ( (binary_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage < 0" (field_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n               _M_end_of_storage" (field_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base<gold" (cast_expression "(int)((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "((pSVar4->u1_).output_segment)->output_lists_[3].\n               super__Vector_base" (subscript_expression "((pSVar4->u1_).output_segment)->output_lists_[3]" (field_expression "((pSVar4->u1_).output_segment)->output_lists_" (parenthesized_expression "((pSVar4->u1_).output_segment)" ( (field_expression "(pSVar4->u1_).output_segment" (parenthesized_expression "(pSVar4->u1_)" ( (field_expression "pSVar4->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) < number_literal) )) (goto_statement "goto LAB_002b9094;" goto statement_identifier ;)) (expression_statement "gc_mark_symbol(this,pSVar4);" (call_expression "gc_mark_symbol(this,pSVar4)" identifier (argument_list "(this,pSVar4)" ( identifier , identifier ))) ;) (expression_statement "p_Var8 = p_Var8->_M_nxt;" (assignment_expression "p_Var8 = p_Var8->_M_nxt" identifier = (field_expression "p_Var8->_M_nxt" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_002b9120:\n  puVar6 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" statement_identifier : (expression_statement "puVar6 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" (assignment_expression "puVar6 = PTR_s_in_a_linker_script_004c191c + 0x30d0" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x30d0" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar6);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar6)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar6)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar6 + 0x3090)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860" identifier + number_literal) , number_literal , (binary_expression "puVar6 + 0x3090" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002b9154:\n  uVar5 = 0x263;" statement_identifier : (expression_statement "uVar5 = 0x263;" (assignment_expression "uVar5 = 0x263" identifier = number_literal) ;)) (do_statement "do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar5 = 0x282;\n  } while( true );" do (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar5 = 0x282;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar5,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x24b0" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3004" identifier + number_literal) ))) ;) (labeled_statement "LAB_002b9170:\n    uVar5 = 0x282;" statement_identifier : (expression_statement "uVar5 = 0x282;" (assignment_expression "uVar5 = 0x282" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}\n\n" (function_definition "void __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)" identifier (parameter_list "(Symbol_table *this,Layout *param_1)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "Symbol *pSVar3;" type_identifier (pointer_declarator "*pSVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (expression_statement "puVar1 = PTR_parameters_004c19b4;" (assignment_expression "puVar1 = PTR_parameters_004c19b4" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8)" identifier = (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }" { (expression_statement "piVar6 = *(int **)(iVar2 + 0x42a0);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x42a0)" identifier = (pointer_expression "*(int **)(iVar2 + 0x42a0)" * (cast_expression "(int **)(iVar2 + 0x42a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x42a0)" ( (binary_expression "iVar2 + 0x42a0" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" { (expression_statement "piVar6 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x1344)" identifier = (pointer_expression "*(int **)(iVar2 + 0x1344)" * (cast_expression "(int **)(iVar2 + 0x1344)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1344)" ( (binary_expression "iVar2 + 0x1344" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" else (compound_statement "{\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" { (do_statement "do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);" do (compound_statement "{\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      }" { (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" identifier = (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar6[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar6[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;" if (parenthesized_expression "(pSVar3 == (Symbol *)0x0)" ( (binary_expression "pSVar3 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002b9154;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) )) (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" { (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }" if (parenthesized_expression "(-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c))" ( (binary_expression "-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)" number_literal < (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" ( (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" * (cast_expression "(int *)(pSVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 8)" ( (binary_expression "pSVar3 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n            gc_mark_symbol(this,pSVar3);\n          }" { (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" identifier (argument_list "(this,pSVar3)" ( identifier , identifier ))) ;) })) })) (expression_statement "iVar2 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)puVar1 + 8)" identifier = (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_002b9120;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002b9120;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar6 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x1344)" identifier = (pointer_expression "*(int **)(iVar2 + 0x1344)" * (cast_expression "(int **)(iVar2 + 0x1344)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1344)" ( (binary_expression "iVar2 + 0x1344" identifier + number_literal) ))))) ;) }))) (if_statement "if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = *(int *)(param_1 + 4);\n    }" { (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" else (compound_statement "{\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" { (do_statement "do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);" do (compound_statement "{\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      }" { (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" identifier = (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar6[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar6[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" if (parenthesized_expression "((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0))" ( (binary_expression "(pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" (parenthesized_expression "(pSVar3 != (Symbol *)0x0)" ( (binary_expression "pSVar3 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) ))) )) (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" { (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }" if (parenthesized_expression "(-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c))" ( (binary_expression "-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)" number_literal < (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" ( (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" * (cast_expression "(int *)(pSVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 8)" ( (binary_expression "pSVar3 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n            gc_mark_symbol(this,pSVar3);\n          }" { (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" identifier (argument_list "(this,pSVar3)" ( identifier , identifier ))) ;) })) })) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (if_statement "if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;" if (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) == 0" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002b9120;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }))) (expression_statement "piVar6 = *(int **)(iVar2 + 0x48);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x48)" identifier = (pointer_expression "*(int **)(iVar2 + 0x48)" * (cast_expression "(int **)(iVar2 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) ;) (do_statement "do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );" do (compound_statement "{\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    }" { (while_statement "while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }" { (if_statement "if (piVar6 == (int *)0x0) {\n          return;\n        }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" identifier = (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" identifier (argument_list "(this,(char *)piVar6[1],(char *)0x0)" ( identifier , (cast_expression "(char *)piVar6[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[1]" identifier [ number_literal ])) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;" if (parenthesized_expression "(pSVar3 == (Symbol *)0x0)" ( (binary_expression "pSVar3 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002b9170;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) << number_literal) )) >> number_literal) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002b9094:\n        piVar6 = (int *)*piVar6;" statement_identifier : (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;)) })) (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" if (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" ( (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" * (cast_expression "(uint *)(pSVar3 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 0x28)" ( (binary_expression "pSVar3 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_002b913c;" goto statement_identifier ;)) (if_statement "if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;" if (parenthesized_expression "(*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0)" ( (binary_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" * (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" ( (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" * (cast_expression "(int *)(pSVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pSVar3 + 8)" ( (binary_expression "pSVar3 + 8" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_002b9094;" goto statement_identifier ;)) (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" identifier (argument_list "(this,pSVar3)" ( identifier , identifier ))) ;) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" identifier = (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" statement_identifier : (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x30d0" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860" identifier + number_literal) , number_literal , (binary_expression "puVar5 + 0x3090" identifier + number_literal) ))) ;)) (labeled_statement "LAB_002b9154:\n  uVar4 = 0x263;" statement_identifier : (expression_statement "uVar4 = 0x263;" (assignment_expression "uVar4 = 0x263" identifier = number_literal) ;)) (do_statement "do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );" do (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x24b0" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3004" identifier + number_literal) ))) ;) (labeled_statement "LAB_002b9170:\n    uVar4 = 0x282;" statement_identifier : (expression_statement "uVar4 = 0x282;" (assignment_expression "uVar4 = 0x282" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )) >> LIT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )) >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )) >> LIT) == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void __thiscall gold::Symbol_table::gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Symbol_table::" (identifier "gold") (: ":") (: ":") (identifier "Symbol_table") (: ":") (: ":")) (function_declarator "gc_mark_undef_symbols(Symbol_table *this,Layout *param_1)" (identifier "gc_mark_undef_symbols") (parameter_list "(Symbol_table *this,Layout *param_1)" (( "(") (parameter_declaration "Symbol_table *this" (type_identifier "Symbol_table") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Layout *param_1" (type_identifier "Layout") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  Symbol *pSVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  int *piVar6;\n  \n  puVar1 = PTR_parameters_004c19b4;\n  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);\n  if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }\nLAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);\nLAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);\nLAB_002b9154:\n  uVar4 = 0x263;\n  do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "Symbol *pSVar3;" (type_identifier "Symbol") (pointer_declarator "*pSVar3" (* "*") (identifier "pSVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (expression_statement "puVar1 = PTR_parameters_004c19b4;" (assignment_expression "puVar1 = PTR_parameters_004c19b4" (identifier "puVar1") (= "=") (identifier "PTR_parameters_004c19b4")) (; ";")) (expression_statement "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" (* "*") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar2 != 0) {\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar6 = *(int **)(iVar2 + 0x42a0);\n    if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    piVar6 = *(int **)(iVar2 + 0x48);\n    do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );\n  }" ({ "{") (expression_statement "piVar6 = *(int **)(iVar2 + 0x42a0);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x42a0)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(iVar2 + 0x42a0)" (* "*") (cast_expression "(int **)(iVar2 + 0x42a0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x42a0)" (( "(") (binary_expression "iVar2 + 0x42a0" (identifier "iVar2") (+ "+") (number_literal "0x42a0")) () ")"))))) (; ";")) (if_statement "if (piVar6 == (int *)0x0) {\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" ({ "{") (expression_statement "piVar6 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x1344)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(iVar2 + 0x1344)" (* "*") (cast_expression "(int **)(iVar2 + 0x1344)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x1344)" (( "(") (binary_expression "iVar2 + 0x1344" (identifier "iVar2") (+ "+") (number_literal "0x1344")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" (else "else") (compound_statement "{\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      piVar6 = *(int **)(iVar2 + 0x1344);\n    }" ({ "{") (do_statement "do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);" (do "do") (compound_statement "{\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        iVar2 = *(int *)(*(int *)puVar1 + 8);\n        piVar6 = (int *)*piVar6;\n        if (iVar2 == 0) goto LAB_002b9120;\n      }" ({ "{") (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" (identifier "pSVar3") (= "=") (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" (identifier "lookup") (argument_list "(this,(char *)piVar6[1],(char *)0x0)" (( "(") (identifier "this") (, ",") (cast_expression "(char *)piVar6[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]"))) (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (if_statement "if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;" (if "if") (parenthesized_expression "(pSVar3 == (Symbol *)0x0)" (( "(") (binary_expression "pSVar3 == (Symbol *)0x0" (identifier "pSVar3") (== "==") (cast_expression "(Symbol *)0x0" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_002b9154;" (goto "goto") (statement_identifier "LAB_002b9154") (; ";"))) (if_statement "if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" (if "if") (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" (( "(") (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" (( "(") (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" (* "*") (cast_expression "(uint *)(pSVar3 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 0x28)" (( "(") (binary_expression "pSVar3 + 0x28" (identifier "pSVar3") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0x1d")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" ({ "{") (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" (identifier "puVar5") (= "=") (identifier "PTR_s_in_a_linker_script_004c191c")) (; ";")) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" (if "if") (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" (( "(") (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" (( "(") (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" (* "*") (cast_expression "(uint *)(pSVar3 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 0x28)" (( "(") (binary_expression "pSVar3 + 0x28" (identifier "pSVar3") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002b913c;" (goto "goto") (statement_identifier "LAB_002b913c") (; ";"))) (if_statement "if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }" (if "if") (parenthesized_expression "(-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c))" (( "(") (binary_expression "-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" (* "*") (cast_expression "(int *)(pSVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 8)" (( "(") (binary_expression "pSVar3 + 8" (identifier "pSVar3") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (compound_statement "{\n            gc_mark_symbol(this,pSVar3);\n          }" ({ "{") (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" (identifier "gc_mark_symbol") (argument_list "(this,pSVar3)" (( "(") (identifier "this") (, ",") (identifier "pSVar3") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar2 = *(int *)(*(int *)puVar1 + 8);" (assignment_expression "iVar2 = *(int *)(*(int *)puVar1 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_002b9120;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002b9120;" (goto "goto") (statement_identifier "LAB_002b9120") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "piVar6 = *(int **)(iVar2 + 0x1344);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x1344)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(iVar2 + 0x1344)" (* "*") (cast_expression "(int **)(iVar2 + 0x1344)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x1344)" (( "(") (binary_expression "iVar2 + 0x1344" (identifier "iVar2") (+ "+") (number_literal "0x1344")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (piVar6 == (int *)0x0) {\n      iVar2 = *(int *)(param_1 + 4);\n    }\n    else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar2 = *(int *)(param_1 + 4);\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" (else "else") (compound_statement "{\n      do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);\n      iVar2 = *(int *)(param_1 + 4);\n    }" ({ "{") (do_statement "do {\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      } while (piVar6 != (int *)0x0);" (do "do") (compound_statement "{\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }\n        piVar6 = (int *)*piVar6;\n        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;\n      }" ({ "{") (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" (identifier "pSVar3") (= "=") (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" (identifier "lookup") (argument_list "(this,(char *)piVar6[1],(char *)0x0)" (( "(") (identifier "this") (, ",") (cast_expression "(char *)piVar6[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]"))) (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (if_statement "if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" (if "if") (parenthesized_expression "((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0))" (( "(") (binary_expression "(pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" (parenthesized_expression "(pSVar3 != (Symbol *)0x0)" (( "(") (binary_expression "pSVar3 != (Symbol *)0x0" (identifier "pSVar3") (!= "!=") (cast_expression "(Symbol *)0x0" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" (( "(") (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" (( "(") (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" (* "*") (cast_expression "(uint *)(pSVar3 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 0x28)" (( "(") (binary_expression "pSVar3 + 0x28" (identifier "pSVar3") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0x1d")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          puVar5 = PTR_s_in_a_linker_script_004c191c;\n          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }\n        }" ({ "{") (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" (identifier "puVar5") (= "=") (identifier "PTR_s_in_a_linker_script_004c191c")) (; ";")) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" (if "if") (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" (( "(") (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" (( "(") (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" (* "*") (cast_expression "(uint *)(pSVar3 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 0x28)" (( "(") (binary_expression "pSVar3 + 0x28" (identifier "pSVar3") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002b913c;" (goto "goto") (statement_identifier "LAB_002b913c") (; ";"))) (if_statement "if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {\n            gc_mark_symbol(this,pSVar3);\n          }" (if "if") (parenthesized_expression "(-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c))" (( "(") (binary_expression "-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" (* "*") (cast_expression "(int *)(pSVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 8)" (( "(") (binary_expression "pSVar3 + 8" (identifier "pSVar3") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (compound_statement "{\n            gc_mark_symbol(this,pSVar3);\n          }" ({ "{") (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" (identifier "gc_mark_symbol") (argument_list "(this,pSVar3)" (( "(") (identifier "this") (, ",") (identifier "pSVar3") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (if_statement "if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;" (if "if") (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)puVar1 + 8) == 0" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002b9120;" (goto "goto") (statement_identifier "LAB_002b9120") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar6 = *(int **)(iVar2 + 0x48);" (assignment_expression "piVar6 = *(int **)(iVar2 + 0x48)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(iVar2 + 0x48)" (* "*") (cast_expression "(int **)(iVar2 + 0x48)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x48)" (( "(") (binary_expression "iVar2 + 0x48" (identifier "iVar2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (do_statement "do {\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    } while( true );" (do "do") (compound_statement "{\n      while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }\n      puVar5 = PTR_s_in_a_linker_script_004c191c;\n      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;\n      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;\n      gc_mark_symbol(this,pSVar3);\n      piVar6 = (int *)*piVar6;\n    }" ({ "{") (while_statement "while( true ) {\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (piVar6 == (int *)0x0) {\n          return;\n        }\n        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);\n        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;\n        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;\nLAB_002b9094:\n        piVar6 = (int *)*piVar6;\n      }" ({ "{") (if_statement "if (piVar6 == (int *)0x0) {\n          return;\n        }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);" (assignment_expression "pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" (identifier "pSVar3") (= "=") (cast_expression "(Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0)" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "lookup(this,(char *)piVar6[1],(char *)0x0)" (identifier "lookup") (argument_list "(this,(char *)piVar6[1],(char *)0x0)" (( "(") (identifier "this") (, ",") (cast_expression "(char *)piVar6[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]"))) (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (if_statement "if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;" (if "if") (parenthesized_expression "(pSVar3 == (Symbol *)0x0)" (( "(") (binary_expression "pSVar3 == (Symbol *)0x0" (identifier "pSVar3") (== "==") (cast_expression "(Symbol *)0x0" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_002b9170;" (goto "goto") (statement_identifier "LAB_002b9170") (; ";"))) (if_statement "if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;" (if "if") (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)" (( "(") (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0" (binary_expression "(*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) << 0x10)" (( "(") (binary_expression "*(uint *)(pSVar3 + 0x28) << 0x10" (pointer_expression "*(uint *)(pSVar3 + 0x28)" (* "*") (cast_expression "(uint *)(pSVar3 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 0x28)" (( "(") (binary_expression "pSVar3 + 0x28" (identifier "pSVar3") (+ "+") (number_literal "0x28")) () ")")))) (<< "<<") (number_literal "0x10")) () ")")) (>> ">>") (number_literal "0x1d")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_002b9094:\n        piVar6 = (int *)*piVar6;" (statement_identifier "LAB_002b9094") (: ":") (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";"))) (} "}"))) (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c" (identifier "puVar5") (= "=") (identifier "PTR_s_in_a_linker_script_004c191c")) (; ";")) (if_statement "if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;" (if "if") (parenthesized_expression "((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0)" (( "(") (binary_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000) != 0" (parenthesized_expression "(*(uint *)(pSVar3 + 0x28) & 0xe000)" (( "(") (binary_expression "*(uint *)(pSVar3 + 0x28) & 0xe000" (pointer_expression "*(uint *)(pSVar3 + 0x28)" (* "*") (cast_expression "(uint *)(pSVar3 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 0x28)" (( "(") (binary_expression "pSVar3 + 0x28" (identifier "pSVar3") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xe000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002b913c;" (goto "goto") (statement_identifier "LAB_002b913c") (; ";"))) (if_statement "if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;" (if "if") (parenthesized_expression "(*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0)" (( "(") (binary_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(pSVar3 + 8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pSVar3 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(pSVar3 + 8) + 0x2c" (pointer_expression "*(int *)(pSVar3 + 8)" (* "*") (cast_expression "(int *)(pSVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pSVar3 + 8)" (( "(") (binary_expression "pSVar3 + 8" (identifier "pSVar3") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_002b9094;" (goto "goto") (statement_identifier "LAB_002b9094") (; ";"))) (expression_statement "gc_mark_symbol(this,pSVar3);" (call_expression "gc_mark_symbol(this,pSVar3)" (identifier "gc_mark_symbol") (argument_list "(this,pSVar3)" (( "(") (identifier "this") (, ",") (identifier "pSVar3") () ")"))) (; ";")) (expression_statement "piVar6 = (int *)*piVar6;" (assignment_expression "piVar6 = (int *)*piVar6" (identifier "piVar6") (= "=") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_002b9120:\n  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" (statement_identifier "LAB_002b9120") (: ":") (expression_statement "puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;" (assignment_expression "puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0" (identifier "puVar5") (= "=") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x30d0" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x30d0"))) (; ";"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x9b8")) (, ",") (number_literal "0x5c") (, ",") (identifier "puVar5") () ")"))) (; ";")) (labeled_statement "LAB_002b913c:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);" (statement_identifier "LAB_002b913c") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3860")) (, ",") (number_literal "0xa1") (, ",") (binary_expression "puVar5 + 0x3090" (identifier "puVar5") (+ "+") (number_literal "0x3090")) () ")"))) (; ";"))) (labeled_statement "LAB_002b9154:\n  uVar4 = 0x263;" (statement_identifier "LAB_002b9154") (: ":") (expression_statement "uVar4 = 0x263;" (assignment_expression "uVar4 = 0x263" (identifier "uVar4") (= "=") (number_literal "0x263")) (; ";"))) (do_statement "do {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  } while( true );" (do "do") (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);\nLAB_002b9170:\n    uVar4 = 0x282;\n  }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,\n               PTR_s_in_a_linker_script_004c191c + 0x3004)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x24b0" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x24b0")) (, ",") (identifier "uVar4") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3004" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x3004")) () ")"))) (; ";")) (labeled_statement "LAB_002b9170:\n    uVar4 = 0x282;" (statement_identifier "LAB_002b9170") (: ":") (expression_statement "uVar4 = 0x282;" (assignment_expression "uVar4 = 0x282" (identifier "uVar4") (= "=") (number_literal "0x282")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (do_statement body: (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: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (do_statement body: (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: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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 (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (true))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (identifier)))) (labeled_statement label: (statement_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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (do_statement body: (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 (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (true))))))

/* WARNING: Type propagation algorithm not settling */
/* gold::Symbol_table::MASKED(gold::Layout*) */

void __thiscall gold::Symbol_table::MASKED(Symbol_table *this,Layout *param_1)

{
  undefined *puVar1;
  int iVar2;
  Symbol *pSVar3;
  undefined4 uVar4;
  undefined *puVar5;
  int *piVar6;
  
  puVar1 = PTR_parameters_004c19b4;
  iVar2 = *(int *)(*(int *)PTR_parameters_004c19b4 + 8);
  if (iVar2 != 0) {
    piVar6 = *(int **)(iVar2 + 0x42a0);
    if (piVar6 == (int *)0x0) {
      piVar6 = *(int **)(iVar2 + 0x1344);
    }
    else {
      do {
        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);
        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9154;
        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) {
          puVar5 = PTR_s_in_a_linker_script_004c191c;
          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;
          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {
            gc_mark_symbol(this,pSVar3);
          }
        }
        iVar2 = *(int *)(*(int *)puVar1 + 8);
        piVar6 = (int *)*piVar6;
        if (iVar2 == 0) goto LAB_002b9120;
      } while (piVar6 != (int *)0x0);
      piVar6 = *(int **)(iVar2 + 0x1344);
    }
    if (piVar6 == (int *)0x0) {
      iVar2 = *(int *)(param_1 + 4);
    }
    else {
      do {
        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);
        if ((pSVar3 != (Symbol *)0x0) && ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0)) {
          puVar5 = PTR_s_in_a_linker_script_004c191c;
          if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;
          if (-1 < *(int *)(*(int *)(pSVar3 + 8) + 0x2c)) {
            gc_mark_symbol(this,pSVar3);
          }
        }
        piVar6 = (int *)*piVar6;
        if (*(int *)(*(int *)puVar1 + 8) == 0) goto LAB_002b9120;
      } while (piVar6 != (int *)0x0);
      iVar2 = *(int *)(param_1 + 4);
    }
    piVar6 = *(int **)(iVar2 + 0x48);
    do {
      while( true ) {
        if (piVar6 == (int *)0x0) {
          return;
        }
        pSVar3 = (Symbol *)lookup(this,(char *)piVar6[1],(char *)0x0);
        if (pSVar3 == (Symbol *)0x0) goto LAB_002b9170;
        if ((*(uint *)(pSVar3 + 0x28) << 0x10) >> 0x1d == 0) break;
LAB_002b9094:
        piVar6 = (int *)*piVar6;
      }
      puVar5 = PTR_s_in_a_linker_script_004c191c;
      if ((*(uint *)(pSVar3 + 0x28) & 0xe000) != 0) goto LAB_002b913c;
      if (*(int *)(*(int *)(pSVar3 + 8) + 0x2c) < 0) goto LAB_002b9094;
      gc_mark_symbol(this,pSVar3);
      piVar6 = (int *)*piVar6;
    } while( true );
  }
LAB_002b9120:
  puVar5 = PTR_s_in_a_linker_script_004c191c + 0x30d0;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,puVar5);
LAB_002b913c:
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3860,0xa1,puVar5 + 0x3090);
LAB_002b9154:
  uVar4 = 0x263;
  do {
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + 0x24b0,uVar4,
               PTR_s_in_a_linker_script_004c191c + 0x3004);
LAB_002b9170:
    uVar4 = 0x282;
  } while( true );
}

