
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: void override_with_special<64>(Symbol_table * this, Sized_symbol<64> *
   tosym, Sized_symbol<64> * fromsym) */

void __thiscall
gold::Symbol_table::override_with_special<64>
          (Symbol_table *this,Sized_symbol<64> *tosym,Sized_symbol<64> *fromsym)

{
  Size_type SVar1;
  int iVar2;
  Sized_symbol<64> *this_00;
  __bucket_type *pp_Var3;
  _Hash_node_base *p_Var4;
  undefined4 uVar5;
  undefined4 *puVar6;
  __bucket_type *pp_Var7;
  Symbol *sym;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>
  *this_01;
  undefined4 uVar8;
  undefined *puVar9;
  uint uVar10;
  _Hash_node_base *p_Var11;
  undefined *puVar12;
  uint uVar13;
  Sized_symbol<64> *local_30;
  
  Symbol::override_base_with_special(&tosym->super_Symbol,&fromsym->super_Symbol);
  iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;
  uVar8 = *(undefined4 *)&fromsym->value_;
  SVar1 = fromsym->symsize_;
  uVar5 = *(undefined4 *)&fromsym->symsize_;
  *(int *)((int)&tosym->value_ + 4) = (int)fromsym->value_;
  *(undefined4 *)&tosym->value_ = uVar8;
  *(int *)((int)&tosym->symsize_ + 4) = (int)SVar1;
  *(undefined4 *)&tosym->symsize_ = uVar5;
  puVar9 = PTR_operator___004c4ab4;
  if (iVar2 << 0x15 < 0) {
    local_30 = tosym;
    puVar6 = (undefined4 *)
             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30);
    uVar5 = 0x457;
    if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {
LAB_0030ec30:
      puVar9 = PTR_UINT_004c12dc + -0x7304;
      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);
      goto LAB_0030ec48;
    }
    this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457);
    do {
      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);
      uVar8 = *(undefined4 *)&fromsym->value_;
      SVar1 = fromsym->symsize_;
      uVar5 = *(undefined4 *)&fromsym->symsize_;
      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;
      *(undefined4 *)&this_00->value_ = uVar8;
      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;
      *(undefined4 *)&this_00->symsize_ = uVar5;
      sym = (Symbol *)&local_30;
      local_30 = this_00;
      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);
      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {
        uVar5 = 0x45d;
        goto LAB_0030ec30;
      }
      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);
    } while (tosym != this_00);
    iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;
  }
  uVar10 = (uint)(iVar2 << 4) >> 0x1c;
  if (uVar10 == 0) {
LAB_0030eb34:
    (*(code *)PTR_force_local_004c4a24)(this,tosym);
    return;
  }
  if (((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))
     ) {
    puVar9 = PTR_UINT_004c12dc;
    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
LAB_0030ec48:
      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>
                 *)&DAT_0000005c;
      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);
      puVar12 = PTR_do_gold_unreachable_004c1a30;
      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);
      if (this_01 ==
          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>
           *)0x1) {
        pp_Var3 = (__bucket_type *)(puVar6 + 6);
        puVar6[6] = 0;
      }
      else {
        pp_Var3 = std::__detail::
                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>
                  ::_M_allocate_buckets(this_01,(size_t)this_01);
      }
      p_Var4 = (_Hash_node_base *)puVar6[2];
      puVar6[2] = 0;
      if (p_Var4 != (_Hash_node_base *)0x0) {
        uVar10 = 0;
        do {
          while( true ) {
            if (this_01 ==
                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>
                 *)0x0) {
              trap(7);
            }
            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;
            pp_Var7 = pp_Var3 + uVar13;
            p_Var11 = p_Var4->_M_nxt;
            if (*pp_Var7 == (__bucket_type)0x0) break;
            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;
            (*pp_Var7)->_M_nxt = p_Var4;
            uVar13 = uVar10;
LAB_0030ecdc:
            p_Var4 = p_Var11;
            uVar10 = uVar13;
            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;
          }
          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];
          puVar6[2] = p_Var4;
          *pp_Var7 = (__bucket_type)(puVar6 + 2);
          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;
          pp_Var3[uVar10] = p_Var4;
          p_Var4 = p_Var11;
          uVar10 = uVar13;
        } while (p_Var11 != (_Hash_node_base *)0x0);
      }
LAB_0030ed38:
      if (puVar6 + 6 != (undefined4 *)*puVar6) {
        (**(code **)(puVar12 + 0x1b269c))();
      }
      puVar6[1] = this_01;
      *puVar6 = pp_Var3;
      return;
    }
    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')
    goto LAB_0030eb34;
  }
  return;
}



/* void gold::Symbol_table::override_with_special<64>(gold::Sized_symbol<64>*,
   gold::Sized_symbol<64> const*) */

void __thiscall
gold::Symbol_table::override_with_special<64>
          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)

{
  int iVar1;
  Symbol *this_00;
  undefined4 *puVar2;
  int *piVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined *puVar10;
  uint uVar11;
  int *piVar12;
  undefined *puVar13;
  uint uVar14;
  Sized_symbol *local_30 [2];
  
  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);
  iVar1 = *(int *)(param_1 + 0x28);
  uVar9 = *(undefined4 *)(param_2 + 0x30);
  uVar7 = *(undefined4 *)(param_2 + 0x3c);
  uVar4 = *(undefined4 *)(param_2 + 0x38);
  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);
  *(undefined4 *)(param_1 + 0x30) = uVar9;
  *(undefined4 *)(param_1 + 0x3c) = uVar7;
  *(undefined4 *)(param_1 + 0x38) = uVar4;
  puVar10 = PTR_operator___004c4ab4;
  if (iVar1 << 0x15 < 0) {
    local_30[0] = param_1;
    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);
    uVar4 = 0x457;
    if (*piVar3 == 0) {
LAB_0030ec30:
      puVar10 = PTR_UINT_004c12dc + -0x7304;
      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);
      goto LAB_0030ec48;
    }
    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);
    do {
      Symbol::override_base_with_special(this_00,(Symbol *)param_2);
      uVar9 = *(undefined4 *)(param_2 + 0x30);
      uVar7 = *(undefined4 *)(param_2 + 0x3c);
      uVar4 = *(undefined4 *)(param_2 + 0x38);
      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);
      *(undefined4 *)(this_00 + 0x30) = uVar9;
      *(undefined4 *)(this_00 + 0x3c) = uVar7;
      *(undefined4 *)(this_00 + 0x38) = uVar4;
      local_30[0] = (Sized_symbol *)this_00;
      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);
      if (*piVar3 == 0) {
        uVar4 = 0x45d;
        goto LAB_0030ec30;
      }
      this_00 = (Symbol *)FUN_0030c900();
    } while (param_1 != (Sized_symbol *)this_00);
    iVar1 = *(int *)(param_1 + 0x28);
  }
  uVar8 = (uint)(iVar1 << 4) >> 0x1c;
  if (uVar8 == 0) {
LAB_0030eb34:
    (*(code *)PTR_force_local_004c4a24)(this,param_1);
    return;
  }
  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))
  {
    puVar10 = PTR_UINT_004c12dc;
    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
LAB_0030ec48:
      uVar8 = 0x5c;
      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);
      puVar13 = PTR_do_gold_unreachable_004c1a30;
      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);
      if (uVar8 == 1) {
        puVar2 = puVar5 + 6;
        puVar5[6] = 0;
      }
      else {
        puVar2 = (undefined4 *)FUN_0030c980(uVar8);
      }
      piVar3 = (int *)puVar5[2];
      puVar5[2] = 0;
      if (piVar3 != (int *)0x0) {
        uVar11 = 0;
        do {
          while( true ) {
            if (uVar8 == 0) {
              trap(7);
            }
            uVar14 = (uint)piVar3[6] % uVar8;
            puVar6 = puVar2 + uVar14;
            piVar12 = (int *)*piVar3;
            if ((int *)*puVar6 == (int *)0x0) break;
            *piVar3 = *(int *)*puVar6;
            *(int **)*puVar6 = piVar3;
            uVar14 = uVar11;
LAB_0030ecdc:
            piVar3 = piVar12;
            uVar11 = uVar14;
            if (piVar12 == (int *)0x0) goto LAB_0030ed38;
          }
          *piVar3 = puVar5[2];
          puVar5[2] = piVar3;
          *puVar6 = puVar5 + 2;
          if (*piVar3 == 0) goto LAB_0030ecdc;
          puVar2[uVar11] = piVar3;
          piVar3 = piVar12;
          uVar11 = uVar14;
        } while (piVar12 != (int *)0x0);
      }
LAB_0030ed38:
      if (puVar5 + 6 != (undefined4 *)*puVar5) {
        (**(code **)(puVar13 + 0x1b269c))();
      }
      puVar5[1] = uVar8;
      *puVar5 = puVar2;
      return;
    }
    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')
    goto LAB_0030eb34;
  }
  return;
}


lui gp,0x1c
addiu gp,gp,-0x57e0
addu gp,gp,t9
addiu sp,sp,-0x48
sw s3,0x2c(sp)
sw s2,0x28(sp)
or s2,a1,zero
sw gp,0x10(sp)
or a1,a2,zero
sw s8,0x40(sp)
or s8,a0,zero
sw s1,0x24(sp)
or a0,s2,zero
sw ra,0x44(sp)
or s1,a2,zero
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
lw s3,-0x4240(gp)
or t9,s3,zero
bal 0x0030d40c
_sw s0,0x20(sp)
lw v0,0x28(s2)
lw a3,0x34(s1)
lw a2,0x30(s1)
lw a1,0x3c(s1)
ext v1,v0,0xa,0x1
lw a0,0x38(s1)
lw gp,0x10(sp)
sw a3,0x34(s2)
sw a2,0x30(s2)
sw a1,0x3c(s2)
bne v1,zero,0x0030eb74
_sw a0,0x38(s2)
ext v1,v0,0x18,0x4
beq v1,zero,0x0030eb34
_ext v0,v0,0x16,0x2
addiu v0,v0,0x3
andi v0,v0,0x3
sltiu v0,v0,0x2
bne v0,zero,0x0030eafc
_addiu v0,v1,0xf
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
andi v0,v0,0xf
sltiu v0,v0,0x2
bne v0,zero,0x0030eb14
_li v0,0xa
bne v1,v0,0x0030ead0
_lw ra,0x44(sp)
lw v0,-0x788c(gp)
lw v0,0x0(v0)
lw v0,0x8(v0)
beq v0,zero,0x0030ec48
_lw a2,-0x7f64(gp)
lbu v0,0x3195(v0)
bne v0,zero,0x0030ead0
_lw ra,0x44(sp)
lw t9,-0x481c(gp)
or a1,s2,zero
jalr t9
_or a0,s8,zero
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
lw s7,-0x478c(gp)
addiu s5,s8,0xb4
addiu s6,sp,0x18
sw s2,0x18(sp)
or a0,s5,zero
or t9,s7,zero
jalr t9
_or a1,s6,zero
li a1,0x457
lw a0,0x0(v0)
beq a0,zero,0x0030ec30
_lw gp,0x10(sp)
lw s4,-0x4268(gp)
addiu s4,s4,-0x3700
or t9,s4,zero
bal 0x0030c900
_nop
or s0,v0,zero
or a1,s1,zero
or t9,s3,zero
bal 0x0030d40c
_or a0,s0,zero
or a0,s5,zero
lw a3,0x34(s1)
or a1,s6,zero
lw a2,0x30(s1)
or t9,s7,zero
lw v1,0x3c(s1)
lw v0,0x38(s1)
sw a3,0x34(s0)
sw a2,0x30(s0)
sw v1,0x3c(s0)
sw v0,0x38(s0)
jalr t9
_sw s0,0x18(sp)
lw a0,0x0(v0)
beq a0,zero,0x0030ec2c
_lw gp,0x10(sp)
or t9,s4,zero
bal 0x0030c900
_nop
lw gp,0x10(sp)
bne s2,v0,0x0030ebbc
_or s0,v0,zero
b 0x0030eaac
_lw v0,0x28(s2)
li a1,0x45d
lw a2,-0x7f64(gp)
lw a0,-0x7f64(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x7304
jalr t9
_addiu a0,a0,-0x7758
li a1,0x5c
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x71c4
jalr t9
_addiu a0,a0,-0x9b8
(translation_unit "/* void gold::Symbol_table::override_with_special<64>(gold::Sized_symbol<64>*,\n   gold::Sized_symbol<64> const*) */\n\nvoid __thiscall\ngold::Symbol_table::override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)\n\n{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Symbol_table::override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)\n\n{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)" identifier (ERROR "<64>" < number_literal >) (parameter_list "(Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Sized_symbol *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Symbol *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Sized_symbol *local_30 [2];" type_identifier (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (labeled_statement "Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);" statement_identifier : (ERROR ":" :) (expression_statement "override_base_with_special((Symbol *)param_1,(Symbol *)param_2);" (call_expression "override_base_with_special((Symbol *)param_1,(Symbol *)param_2)" identifier (argument_list "((Symbol *)param_1,(Symbol *)param_2)" ( (cast_expression "(Symbol *)param_1" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Symbol *)param_2" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x30)" * (cast_expression "(undefined4 *)(param_2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "uVar7 = *(undefined4 *)(param_2 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" * (cast_expression "(undefined4 *)(param_2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "uVar4 = *(undefined4 *)(param_2 + 0x38)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x38)" * (cast_expression "(undefined4 *)(param_2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x34)" * (cast_expression "(undefined4 *)(param_2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x30) = uVar9;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = uVar9" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = uVar7;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = uVar7" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined4 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = PTR_operator___004c4ab4;" (assignment_expression "puVar10 = PTR_operator___004c4ab4" identifier = identifier) ;) (if_statement "if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }" if (parenthesized_expression "(iVar1 << 0x15 < 0)" ( (binary_expression "iVar1 << 0x15 < 0" (binary_expression "iVar1 << 0x15" identifier << number_literal) < number_literal) )) (compound_statement "{\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }" { (expression_statement "local_30[0] = param_1;" (assignment_expression "local_30[0] = param_1" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" (parenthesized_expression "(*(code *)PTR_operator___004c4ab4)" ( (pointer_expression "*(code *)PTR_operator___004c4ab4" * (cast_expression "(code *)PTR_operator___004c4ab4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0xb4,local_30)" ( (binary_expression "this + 0xb4" identifier + number_literal) , identifier ))))) ;) (expression_statement "uVar4 = 0x457;" (assignment_expression "uVar4 = 0x457" identifier = number_literal) ;) (if_statement "if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }" { (labeled_statement "LAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;" statement_identifier : (expression_statement "puVar10 = PTR_UINT_004c12dc + -0x7304;" (assignment_expression "puVar10 = PTR_UINT_004c12dc + -0x7304" identifier = (binary_expression "PTR_UINT_004c12dc + -0x7304" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10)" (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_UINT_004c12dc + -0x7758,uVar4,puVar10)" ( (binary_expression "PTR_UINT_004c12dc + -0x7758" identifier + number_literal) , identifier , identifier ))) ;) (goto_statement "goto LAB_0030ec48;" goto statement_identifier ;) })) (expression_statement "this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);" (assignment_expression "this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457)" identifier = (cast_expression "(Symbol *)FUN_0030c900(*piVar3,0x457)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030c900(*piVar3,0x457)" identifier (argument_list "(*piVar3,0x457)" ( (pointer_expression "*piVar3" * identifier) , number_literal ))))) ;) (do_statement "do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);" do (compound_statement "{\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    }" { (labeled_statement "Symbol::override_base_with_special(this_00,(Symbol *)param_2);" statement_identifier : (ERROR ":" :) (expression_statement "override_base_with_special(this_00,(Symbol *)param_2);" (call_expression "override_base_with_special(this_00,(Symbol *)param_2)" identifier (argument_list "(this_00,(Symbol *)param_2)" ( identifier , (cast_expression "(Symbol *)param_2" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x30)" * (cast_expression "(undefined4 *)(param_2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "uVar7 = *(undefined4 *)(param_2 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" * (cast_expression "(undefined4 *)(param_2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "uVar4 = *(undefined4 *)(param_2 + 0x38)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x38)" * (cast_expression "(undefined4 *)(param_2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(this_00 + 0x34)" * (cast_expression "(undefined4 *)(this_00 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x34)" ( (binary_expression "this_00 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x34)" * (cast_expression "(undefined4 *)(param_2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(this_00 + 0x30) = uVar9;" (assignment_expression "*(undefined4 *)(this_00 + 0x30) = uVar9" (pointer_expression "*(undefined4 *)(this_00 + 0x30)" * (cast_expression "(undefined4 *)(this_00 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x30)" ( (binary_expression "this_00 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this_00 + 0x3c) = uVar7;" (assignment_expression "*(undefined4 *)(this_00 + 0x3c) = uVar7" (pointer_expression "*(undefined4 *)(this_00 + 0x3c)" * (cast_expression "(undefined4 *)(this_00 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x3c)" ( (binary_expression "this_00 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this_00 + 0x38) = uVar4;" (assignment_expression "*(undefined4 *)(this_00 + 0x38) = uVar4" (pointer_expression "*(undefined4 *)(this_00 + 0x38)" * (cast_expression "(undefined4 *)(this_00 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x38)" ( (binary_expression "this_00 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30[0] = (Sized_symbol *)this_00;" (assignment_expression "local_30[0] = (Sized_symbol *)this_00" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (cast_expression "(Sized_symbol *)this_00" ( (type_descriptor "Sized_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);" (assignment_expression "piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30)" identifier = (cast_expression "(int *)(*(code *)puVar10)(this + 0xb4,local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar10)(this + 0xb4,local_30)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0xb4,local_30)" ( (binary_expression "this + 0xb4" identifier + number_literal) , identifier ))))) ;) (if_statement "if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }" { (expression_statement "uVar4 = 0x45d;" (assignment_expression "uVar4 = 0x45d" identifier = number_literal) ;) (goto_statement "goto LAB_0030ec30;" goto statement_identifier ;) })) (expression_statement "this_00 = (Symbol *)FUN_0030c900();" (assignment_expression "this_00 = (Symbol *)FUN_0030c900()" identifier = (cast_expression "(Symbol *)FUN_0030c900()" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030c900()" identifier (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(param_1 != (Sized_symbol *)this_00)" ( (binary_expression "param_1 != (Sized_symbol *)this_00" identifier != (cast_expression "(Sized_symbol *)this_00" ( (type_descriptor "Sized_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) })) (expression_statement "uVar8 = (uint)(iVar1 << 4) >> 0x1c;" (assignment_expression "uVar8 = (uint)(iVar1 << 4) >> 0x1c" identifier = (binary_expression "(uint)(iVar1 << 4) >> 0x1c" (call_expression "(uint)(iVar1 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 << 4)" ( (binary_expression "iVar1 << 4" identifier << number_literal) ))) >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }" { (labeled_statement "LAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);" statement_identifier : (expression_statement "(*(code *)PTR_force_local_004c4a24)(this,param_1);" (call_expression "(*(code *)PTR_force_local_004c4a24)(this,param_1)" (parenthesized_expression "(*(code *)PTR_force_local_004c4a24)" ( (pointer_expression "*(code *)PTR_force_local_004c4a24" * (cast_expression "(code *)PTR_force_local_004c4a24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this,param_1)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" if (parenthesized_expression "(((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))" ( (binary_expression "((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)))" (parenthesized_expression "((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2)" ( (binary_expression "(((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(iVar1 << 8) >> 0x1e) + 3 & 3)" ( (binary_expression "((uint)(iVar1 << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(iVar1 << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(iVar1 << 8) >> 0x1e)" ( (binary_expression "(uint)(iVar1 << 8) >> 0x1e" (call_expression "(uint)(iVar1 << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 << 8)" ( (binary_expression "iVar1 << 8" identifier << number_literal) ))) >> number_literal) )) + number_literal) & number_literal) )) < number_literal) )) && (parenthesized_expression "(((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)))" ( (parenthesized_expression "((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))" ( (binary_expression "(uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)" (binary_expression "(uVar8 + 0xf & 0xf) < 2" (parenthesized_expression "(uVar8 + 0xf & 0xf)" ( (binary_expression "uVar8 + 0xf & 0xf" (binary_expression "uVar8 + 0xf" identifier + number_literal) & number_literal) )) < number_literal) || (parenthesized_expression "(uVar8 == 10)" ( (binary_expression "uVar8 == 10" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" { (expression_statement "puVar10 = PTR_UINT_004c12dc;" (assignment_expression "puVar10 = PTR_UINT_004c12dc" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (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) )))) == number_literal) )) (compound_statement "{\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }" { (labeled_statement "LAB_0030ec48:\n      uVar8 = 0x5c;" statement_identifier : (expression_statement "uVar8 = 0x5c;" (assignment_expression "uVar8 = 0x5c" identifier = number_literal) ;)) (expression_statement "puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);" (assignment_expression "puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" identifier = (cast_expression "(undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) )))) ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4)" (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 "(puVar5,0x5c,puVar10 + -0x71c4)" ( identifier , number_literal , (binary_expression "puVar10 + -0x71c4" identifier + number_literal) ))) ;) (if_statement "if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }" { (expression_statement "puVar2 = puVar5 + 6;" (assignment_expression "puVar2 = puVar5 + 6" identifier = (binary_expression "puVar5 + 6" identifier + number_literal)) ;) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" else (compound_statement "{\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" { (expression_statement "puVar2 = (undefined4 *)FUN_0030c980(uVar8);" (assignment_expression "puVar2 = (undefined4 *)FUN_0030c980(uVar8)" identifier = (cast_expression "(undefined4 *)FUN_0030c980(uVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030c980(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))))) ;) }))) (expression_statement "piVar3 = (int *)puVar5[2];" (assignment_expression "piVar3 = (int *)puVar5[2]" identifier = (cast_expression "(int *)puVar5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);" do (compound_statement "{\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        }" { (while_statement "while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }" { (if_statement "if (uVar8 == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              trap(7);\n            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar14 = (uint)piVar3[6] % uVar8;" (assignment_expression "uVar14 = (uint)piVar3[6] % uVar8" identifier = (binary_expression "(uint)piVar3[6] % uVar8" (cast_expression "(uint)piVar3[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[6]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "puVar6 = puVar2 + uVar14;" (assignment_expression "puVar6 = puVar2 + uVar14" identifier = (binary_expression "puVar2 + uVar14" identifier + identifier)) ;) (expression_statement "piVar12 = (int *)*piVar3;" (assignment_expression "piVar12 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if ((int *)*puVar6 == (int *)0x0) break;" if (parenthesized_expression "((int *)*puVar6 == (int *)0x0)" ( (binary_expression "(int *)*puVar6 == (int *)0x0" (cast_expression "(int *)*puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*piVar3 = *(int *)*puVar6;" (assignment_expression "*piVar3 = *(int *)*puVar6" (pointer_expression "*piVar3" * identifier) = (pointer_expression "*(int *)*puVar6" * (cast_expression "(int *)*puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)))) ;) (expression_statement "*(int **)*puVar6 = piVar3;" (assignment_expression "*(int **)*puVar6 = piVar3" (pointer_expression "*(int **)*puVar6" * (cast_expression "(int **)*puVar6" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar6" * identifier))) = identifier) ;) (expression_statement "uVar14 = uVar11;" (assignment_expression "uVar14 = uVar11" identifier = identifier) ;) (labeled_statement "LAB_0030ecdc:\n            piVar3 = piVar12;" statement_identifier : (expression_statement "piVar3 = piVar12;" (assignment_expression "piVar3 = piVar12" identifier = identifier) ;)) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" identifier = identifier) ;) (if_statement "if (piVar12 == (int *)0x0) goto LAB_0030ed38;" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0030ed38;" goto statement_identifier ;)) })) (expression_statement "*piVar3 = puVar5[2];" (assignment_expression "*piVar3 = puVar5[2]" (pointer_expression "*piVar3" * identifier) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "puVar5[2] = piVar3;" (assignment_expression "puVar5[2] = piVar3" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = puVar5 + 2;" (assignment_expression "*puVar6 = puVar5 + 2" (pointer_expression "*puVar6" * identifier) = (binary_expression "puVar5 + 2" identifier + number_literal)) ;) (if_statement "if (*piVar3 == 0) goto LAB_0030ecdc;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0030ecdc;" goto statement_identifier ;)) (expression_statement "puVar2[uVar11] = piVar3;" (assignment_expression "puVar2[uVar11] = piVar3" (subscript_expression "puVar2[uVar11]" identifier [ identifier ]) = identifier) ;) (expression_statement "piVar3 = piVar12;" (assignment_expression "piVar3 = piVar12" identifier = identifier) ;) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" identifier = identifier) ;) }) while (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" statement_identifier : (if_statement "if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" if (parenthesized_expression "(puVar5 + 6 != (undefined4 *)*puVar5)" ( (binary_expression "puVar5 + 6 != (undefined4 *)*puVar5" (binary_expression "puVar5 + 6" identifier + number_literal) != (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) )) (compound_statement "{\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" { (expression_statement "(**(code **)(puVar13 + 0x1b269c))();" (call_expression "(**(code **)(puVar13 + 0x1b269c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1b269c))" ( (pointer_expression "**(code **)(puVar13 + 0x1b269c)" * (pointer_expression "*(code **)(puVar13 + 0x1b269c)" * (cast_expression "(code **)(puVar13 + 0x1b269c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1b269c)" ( (binary_expression "puVar13 + 0x1b269c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "puVar5[1] = uVar8;" (assignment_expression "puVar5[1] = uVar8" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = puVar2;" (assignment_expression "*puVar5 = puVar2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195" (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) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0030eb34;" goto statement_identifier ;)) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: void override_with_special<64>(Symbol_table * this, Sized_symbol<64> *\n   tosym, Sized_symbol<64> * fromsym) */\n\nvoid __thiscall\ngold::Symbol_table::override_with_special<64>\n          (Symbol_table *this,Sized_symbol<64> *tosym,Sized_symbol<64> *fromsym)\n\n{\n  Size_type SVar1;\n  int iVar2;\n  Sized_symbol<64> *this_00;\n  __bucket_type *pp_Var3;\n  _Hash_node_base *p_Var4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  __bucket_type *pp_Var7;\n  Symbol *sym;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n  *this_01;\n  undefined4 uVar8;\n  undefined *puVar9;\n  uint uVar10;\n  _Hash_node_base *p_Var11;\n  undefined *puVar12;\n  uint uVar13;\n  Sized_symbol<64> *local_30;\n  \n  Symbol::override_base_with_special(&tosym->super_Symbol,&fromsym->super_Symbol);\n  iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  uVar8 = *(undefined4 *)&fromsym->value_;\n  SVar1 = fromsym->symsize_;\n  uVar5 = *(undefined4 *)&fromsym->symsize_;\n  *(int *)((int)&tosym->value_ + 4) = (int)fromsym->value_;\n  *(undefined4 *)&tosym->value_ = uVar8;\n  *(int *)((int)&tosym->symsize_ + 4) = (int)SVar1;\n  *(undefined4 *)&tosym->symsize_ = uVar5;\n  puVar9 = PTR_operator___004c4ab4;\n  if (iVar2 << 0x15 < 0) {\n    local_30 = tosym;\n    puVar6 = (undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30);\n    uVar5 = 0x457;\n    if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\nLAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);\n      goto LAB_0030ec48;\n    }\n    this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457);\n    do {\n      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);\n      uVar8 = *(undefined4 *)&fromsym->value_;\n      SVar1 = fromsym->symsize_;\n      uVar5 = *(undefined4 *)&fromsym->symsize_;\n      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;\n      *(undefined4 *)&this_00->value_ = uVar8;\n      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;\n      *(undefined4 *)&this_00->symsize_ = uVar5;\n      sym = (Symbol *)&local_30;\n      local_30 = this_00;\n      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);\n      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);\n    } while (tosym != this_00);\n    iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  }\n  uVar10 = (uint)(iVar2 << 4) >> 0x1c;\n  if (uVar10 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,tosym);\n    return;\n  }\n  if (((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))\n     ) {\n    puVar9 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;\n      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar12 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);\n      if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }\n      p_Var4 = (_Hash_node_base *)puVar6[2];\n      puVar6[2] = 0;\n      if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }\n      puVar6[1] = this_01;\n      *puVar6 = pp_Var3;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Symbol_table::override_with_special<64>\n          (Symbol_table *this,Sized_symbol<64> *tosym,Sized_symbol<64> *fromsym)\n\n{\n  Size_type SVar1;\n  int iVar2;\n  Sized_symbol<64> *this_00;\n  __bucket_type *pp_Var3;\n  _Hash_node_base *p_Var4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  __bucket_type *pp_Var7;\n  Symbol *sym;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n  *this_01;\n  undefined4 uVar8;\n  undefined *puVar9;\n  uint uVar10;\n  _Hash_node_base *p_Var11;\n  undefined *puVar12;\n  uint uVar13;\n  Sized_symbol<64> *local_30;\n  \n  Symbol::override_base_with_special(&tosym->super_Symbol,&fromsym->super_Symbol);\n  iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  uVar8 = *(undefined4 *)&fromsym->value_;\n  SVar1 = fromsym->symsize_;\n  uVar5 = *(undefined4 *)&fromsym->symsize_;\n  *(int *)((int)&tosym->value_ + 4) = (int)fromsym->value_;\n  *(undefined4 *)&tosym->value_ = uVar8;\n  *(int *)((int)&tosym->symsize_ + 4) = (int)SVar1;\n  *(undefined4 *)&tosym->symsize_ = uVar5;\n  puVar9 = PTR_operator___004c4ab4;\n  if (iVar2 << 0x15 < 0) {\n    local_30 = tosym;\n    puVar6 = (undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30);\n    uVar5 = 0x457;\n    if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\nLAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);\n      goto LAB_0030ec48;\n    }\n    this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457);\n    do {\n      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);\n      uVar8 = *(undefined4 *)&fromsym->value_;\n      SVar1 = fromsym->symsize_;\n      uVar5 = *(undefined4 *)&fromsym->symsize_;\n      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;\n      *(undefined4 *)&this_00->value_ = uVar8;\n      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;\n      *(undefined4 *)&this_00->symsize_ = uVar5;\n      sym = (Symbol *)&local_30;\n      local_30 = this_00;\n      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);\n      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);\n    } while (tosym != this_00);\n    iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  }\n  uVar10 = (uint)(iVar2 << 4) >> 0x1c;\n  if (uVar10 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,tosym);\n    return;\n  }\n  if (((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))\n     ) {\n    puVar9 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;\n      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar12 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);\n      if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }\n      p_Var4 = (_Hash_node_base *)puVar6[2];\n      puVar6[2] = 0;\n      if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }\n      puVar6[1] = this_01;\n      *puVar6 = pp_Var3;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "override_with_special<64>\n          (Symbol_table *this,Sized_symbol<64> *tosym,Sized_symbol<64> *fromsym)" identifier (ERROR "<64>" < number_literal >) (parameter_list "(Symbol_table *this,Sized_symbol<64> *tosym,Sized_symbol<64> *fromsym)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<64> *tosym" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*tosym" * identifier)) , (parameter_declaration "Sized_symbol<64> *fromsym" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*fromsym" * identifier)) ))) (compound_statement "{\n  Size_type SVar1;\n  int iVar2;\n  Sized_symbol<64> *this_00;\n  __bucket_type *pp_Var3;\n  _Hash_node_base *p_Var4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  __bucket_type *pp_Var7;\n  Symbol *sym;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n  *this_01;\n  undefined4 uVar8;\n  undefined *puVar9;\n  uint uVar10;\n  _Hash_node_base *p_Var11;\n  undefined *puVar12;\n  uint uVar13;\n  Sized_symbol<64> *local_30;\n  \n  Symbol::override_base_with_special(&tosym->super_Symbol,&fromsym->super_Symbol);\n  iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  uVar8 = *(undefined4 *)&fromsym->value_;\n  SVar1 = fromsym->symsize_;\n  uVar5 = *(undefined4 *)&fromsym->symsize_;\n  *(int *)((int)&tosym->value_ + 4) = (int)fromsym->value_;\n  *(undefined4 *)&tosym->value_ = uVar8;\n  *(int *)((int)&tosym->symsize_ + 4) = (int)SVar1;\n  *(undefined4 *)&tosym->symsize_ = uVar5;\n  puVar9 = PTR_operator___004c4ab4;\n  if (iVar2 << 0x15 < 0) {\n    local_30 = tosym;\n    puVar6 = (undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30);\n    uVar5 = 0x457;\n    if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\nLAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);\n      goto LAB_0030ec48;\n    }\n    this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457);\n    do {\n      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);\n      uVar8 = *(undefined4 *)&fromsym->value_;\n      SVar1 = fromsym->symsize_;\n      uVar5 = *(undefined4 *)&fromsym->symsize_;\n      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;\n      *(undefined4 *)&this_00->value_ = uVar8;\n      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;\n      *(undefined4 *)&this_00->symsize_ = uVar5;\n      sym = (Symbol *)&local_30;\n      local_30 = this_00;\n      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);\n      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);\n    } while (tosym != this_00);\n    iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  }\n  uVar10 = (uint)(iVar2 << 4) >> 0x1c;\n  if (uVar10 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,tosym);\n    return;\n  }\n  if (((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))\n     ) {\n    puVar9 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;\n      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar12 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);\n      if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }\n      p_Var4 = (_Hash_node_base *)puVar6[2];\n      puVar6[2] = 0;\n      if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }\n      puVar6[1] = this_01;\n      *puVar6 = pp_Var3;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" { (declaration "Size_type SVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "Sized_symbol<64> *this_00;" (binary_expression "Sized_symbol<64> *this_00" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*this_00" * identifier)) ;) (declaration "__bucket_type *pp_Var3;" type_identifier (pointer_declarator "*pp_Var3" * identifier) ;) (declaration "_Hash_node_base *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "__bucket_type *pp_Var7;" type_identifier (pointer_declarator "*pp_Var7" * identifier) ;) (declaration "Symbol *sym;" type_identifier (pointer_declarator "*sym" * identifier) ;) (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) : : (comma_expression "__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std" identifier (ERROR "::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Symbol_location>_>_>,_false>_>_>\n  *this_01;" (binary_expression "Symbol_location>_>_>,_false>_>_>\n  *this_01" (binary_expression "Symbol_location>_>_>,_false>_>_" (binary_expression "Symbol_location>_>_>,_false>_" (binary_expression "Symbol_location>_>_>,_false" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*this_01" * identifier)) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (expression_statement "Sized_symbol<64> *local_30;" (binary_expression "Sized_symbol<64> *local_30" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*local_30" * identifier)) ;) (labeled_statement "Symbol::override_base_with_special(&tosym->super_Symbol,&fromsym->super_Symbol);" statement_identifier : (ERROR ":" :) (expression_statement "override_base_with_special(&tosym->super_Symbol,&fromsym->super_Symbol);" (call_expression "override_base_with_special(&tosym->super_Symbol,&fromsym->super_Symbol)" identifier (argument_list "(&tosym->super_Symbol,&fromsym->super_Symbol)" ( (pointer_expression "&tosym->super_Symbol" & (field_expression "tosym->super_Symbol" identifier -> field_identifier)) , (pointer_expression "&fromsym->super_Symbol" & (field_expression "fromsym->super_Symbol" identifier -> field_identifier)) ))) ;)) (expression_statement "iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;" (assignment_expression "iVar2 = *(int *)&(tosym->super_Symbol).field_0x28" identifier = (pointer_expression "*(int *)&(tosym->super_Symbol).field_0x28" * (cast_expression "(int *)&(tosym->super_Symbol).field_0x28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(tosym->super_Symbol).field_0x28" & (field_expression "(tosym->super_Symbol).field_0x28" (parenthesized_expression "(tosym->super_Symbol)" ( (field_expression "tosym->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar8 = *(undefined4 *)&fromsym->value_;" (assignment_expression "uVar8 = *(undefined4 *)&fromsym->value_" identifier = (pointer_expression "*(undefined4 *)&fromsym->value_" * (cast_expression "(undefined4 *)&fromsym->value_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&fromsym->value_" & (field_expression "fromsym->value_" identifier -> field_identifier))))) ;) (expression_statement "SVar1 = fromsym->symsize_;" (assignment_expression "SVar1 = fromsym->symsize_" identifier = (field_expression "fromsym->symsize_" identifier -> field_identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)&fromsym->symsize_;" (assignment_expression "uVar5 = *(undefined4 *)&fromsym->symsize_" identifier = (pointer_expression "*(undefined4 *)&fromsym->symsize_" * (cast_expression "(undefined4 *)&fromsym->symsize_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&fromsym->symsize_" & (field_expression "fromsym->symsize_" identifier -> field_identifier))))) ;) (expression_statement "*(int *)((int)&tosym->value_ + 4) = (int)fromsym->value_;" (assignment_expression "*(int *)((int)&tosym->value_ + 4) = (int)fromsym->value_" (pointer_expression "*(int *)((int)&tosym->value_ + 4)" * (cast_expression "(int *)((int)&tosym->value_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&tosym->value_ + 4)" ( (binary_expression "(int)&tosym->value_ + 4" (cast_expression "(int)&tosym->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&tosym->value_" & (field_expression "tosym->value_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)fromsym->value_" ( (type_descriptor "int" primitive_type) ) (field_expression "fromsym->value_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)&tosym->value_ = uVar8;" (assignment_expression "*(undefined4 *)&tosym->value_ = uVar8" (pointer_expression "*(undefined4 *)&tosym->value_" * (cast_expression "(undefined4 *)&tosym->value_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tosym->value_" & (field_expression "tosym->value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&tosym->symsize_ + 4) = (int)SVar1;" (assignment_expression "*(int *)((int)&tosym->symsize_ + 4) = (int)SVar1" (pointer_expression "*(int *)((int)&tosym->symsize_ + 4)" * (cast_expression "(int *)((int)&tosym->symsize_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&tosym->symsize_ + 4)" ( (binary_expression "(int)&tosym->symsize_ + 4" (cast_expression "(int)&tosym->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&tosym->symsize_" & (field_expression "tosym->symsize_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)SVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)&tosym->symsize_ = uVar5;" (assignment_expression "*(undefined4 *)&tosym->symsize_ = uVar5" (pointer_expression "*(undefined4 *)&tosym->symsize_" * (cast_expression "(undefined4 *)&tosym->symsize_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tosym->symsize_" & (field_expression "tosym->symsize_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "puVar9 = PTR_operator___004c4ab4;" (assignment_expression "puVar9 = PTR_operator___004c4ab4" identifier = identifier) ;) (if_statement "if (iVar2 << 0x15 < 0) {\n    local_30 = tosym;\n    puVar6 = (undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30);\n    uVar5 = 0x457;\n    if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\nLAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);\n      goto LAB_0030ec48;\n    }\n    this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457);\n    do {\n      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);\n      uVar8 = *(undefined4 *)&fromsym->value_;\n      SVar1 = fromsym->symsize_;\n      uVar5 = *(undefined4 *)&fromsym->symsize_;\n      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;\n      *(undefined4 *)&this_00->value_ = uVar8;\n      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;\n      *(undefined4 *)&this_00->symsize_ = uVar5;\n      sym = (Symbol *)&local_30;\n      local_30 = this_00;\n      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);\n      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);\n    } while (tosym != this_00);\n    iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  }" if (parenthesized_expression "(iVar2 << 0x15 < 0)" ( (binary_expression "iVar2 << 0x15 < 0" (binary_expression "iVar2 << 0x15" identifier << number_literal) < number_literal) )) (compound_statement "{\n    local_30 = tosym;\n    puVar6 = (undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30);\n    uVar5 = 0x457;\n    if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\nLAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);\n      goto LAB_0030ec48;\n    }\n    this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457);\n    do {\n      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);\n      uVar8 = *(undefined4 *)&fromsym->value_;\n      SVar1 = fromsym->symsize_;\n      uVar5 = *(undefined4 *)&fromsym->symsize_;\n      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;\n      *(undefined4 *)&this_00->value_ = uVar8;\n      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;\n      *(undefined4 *)&this_00->symsize_ = uVar5;\n      sym = (Symbol *)&local_30;\n      local_30 = this_00;\n      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);\n      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);\n    } while (tosym != this_00);\n    iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;\n  }" { (expression_statement "local_30 = tosym;" (assignment_expression "local_30 = tosym" identifier = identifier) ;) (expression_statement "puVar6 = (undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30);" (assignment_expression "puVar6 = (undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator___004c4ab4)(&this->weak_aliases_,(Symbol *)&local_30)" (parenthesized_expression "(*(code *)PTR_operator___004c4ab4)" ( (pointer_expression "*(code *)PTR_operator___004c4ab4" * (cast_expression "(code *)PTR_operator___004c4ab4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this->weak_aliases_,(Symbol *)&local_30)" ( (pointer_expression "&this->weak_aliases_" & (field_expression "this->weak_aliases_" identifier -> field_identifier)) , (cast_expression "(Symbol *)&local_30" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30" & identifier)) ))))) ;) (expression_statement "uVar5 = 0x457;" (assignment_expression "uVar5 = 0x457" identifier = number_literal) ;) (if_statement "if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\nLAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);\n      goto LAB_0030ec48;\n    }" if (parenthesized_expression "((Symbol_table *)*puVar6 == (Symbol_table *)0x0)" ( (binary_expression "(Symbol_table *)*puVar6 == (Symbol_table *)0x0" (cast_expression "(Symbol_table *)*puVar6" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);\n      goto LAB_0030ec48;\n    }" { (labeled_statement "LAB_0030ec30:\n      puVar9 = PTR_UINT_004c12dc + -0x7304;" statement_identifier : (expression_statement "puVar9 = PTR_UINT_004c12dc + -0x7304;" (assignment_expression "puVar9 = PTR_UINT_004c12dc + -0x7304" identifier = (binary_expression "PTR_UINT_004c12dc + -0x7304" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar5,puVar9)" (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_UINT_004c12dc + -0x7758,uVar5,puVar9)" ( (binary_expression "PTR_UINT_004c12dc + -0x7758" identifier + number_literal) , identifier , identifier ))) ;) (goto_statement "goto LAB_0030ec48;" goto statement_identifier ;) })) (expression_statement "this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457);" (assignment_expression "this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457)" identifier = (binary_expression "get_sized_symbol<64>((Symbol_table *)*puVar6,(Symbol *)0x457)" (binary_expression "get_sized_symbol<64" identifier < number_literal) > (parenthesized_expression "((Symbol_table *)*puVar6,(Symbol *)0x457)" ( (comma_expression "(Symbol_table *)*puVar6,(Symbol *)0x457" (cast_expression "(Symbol_table *)*puVar6" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) , (cast_expression "(Symbol *)0x457" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (do_statement "do {\n      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);\n      uVar8 = *(undefined4 *)&fromsym->value_;\n      SVar1 = fromsym->symsize_;\n      uVar5 = *(undefined4 *)&fromsym->symsize_;\n      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;\n      *(undefined4 *)&this_00->value_ = uVar8;\n      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;\n      *(undefined4 *)&this_00->symsize_ = uVar5;\n      sym = (Symbol *)&local_30;\n      local_30 = this_00;\n      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);\n      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);\n    } while (tosym != this_00);" do (compound_statement "{\n      Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);\n      uVar8 = *(undefined4 *)&fromsym->value_;\n      SVar1 = fromsym->symsize_;\n      uVar5 = *(undefined4 *)&fromsym->symsize_;\n      *(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;\n      *(undefined4 *)&this_00->value_ = uVar8;\n      *(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;\n      *(undefined4 *)&this_00->symsize_ = uVar5;\n      sym = (Symbol *)&local_30;\n      local_30 = this_00;\n      puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);\n      if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);\n    }" { (labeled_statement "Symbol::override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);" statement_identifier : (ERROR ":" :) (expression_statement "override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol);" (call_expression "override_base_with_special(&this_00->super_Symbol,&fromsym->super_Symbol)" identifier (argument_list "(&this_00->super_Symbol,&fromsym->super_Symbol)" ( (pointer_expression "&this_00->super_Symbol" & (field_expression "this_00->super_Symbol" identifier -> field_identifier)) , (pointer_expression "&fromsym->super_Symbol" & (field_expression "fromsym->super_Symbol" identifier -> field_identifier)) ))) ;)) (expression_statement "uVar8 = *(undefined4 *)&fromsym->value_;" (assignment_expression "uVar8 = *(undefined4 *)&fromsym->value_" identifier = (pointer_expression "*(undefined4 *)&fromsym->value_" * (cast_expression "(undefined4 *)&fromsym->value_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&fromsym->value_" & (field_expression "fromsym->value_" identifier -> field_identifier))))) ;) (expression_statement "SVar1 = fromsym->symsize_;" (assignment_expression "SVar1 = fromsym->symsize_" identifier = (field_expression "fromsym->symsize_" identifier -> field_identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)&fromsym->symsize_;" (assignment_expression "uVar5 = *(undefined4 *)&fromsym->symsize_" identifier = (pointer_expression "*(undefined4 *)&fromsym->symsize_" * (cast_expression "(undefined4 *)&fromsym->symsize_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&fromsym->symsize_" & (field_expression "fromsym->symsize_" identifier -> field_identifier))))) ;) (expression_statement "*(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_;" (assignment_expression "*(int *)((int)&this_00->value_ + 4) = (int)fromsym->value_" (pointer_expression "*(int *)((int)&this_00->value_ + 4)" * (cast_expression "(int *)((int)&this_00->value_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00->value_ + 4)" ( (binary_expression "(int)&this_00->value_ + 4" (cast_expression "(int)&this_00->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00->value_" & (field_expression "this_00->value_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)fromsym->value_" ( (type_descriptor "int" primitive_type) ) (field_expression "fromsym->value_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)&this_00->value_ = uVar8;" (assignment_expression "*(undefined4 *)&this_00->value_ = uVar8" (pointer_expression "*(undefined4 *)&this_00->value_" * (cast_expression "(undefined4 *)&this_00->value_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->value_" & (field_expression "this_00->value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&this_00->symsize_ + 4) = (int)SVar1;" (assignment_expression "*(int *)((int)&this_00->symsize_ + 4) = (int)SVar1" (pointer_expression "*(int *)((int)&this_00->symsize_ + 4)" * (cast_expression "(int *)((int)&this_00->symsize_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00->symsize_ + 4)" ( (binary_expression "(int)&this_00->symsize_ + 4" (cast_expression "(int)&this_00->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00->symsize_" & (field_expression "this_00->symsize_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)SVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)&this_00->symsize_ = uVar5;" (assignment_expression "*(undefined4 *)&this_00->symsize_ = uVar5" (pointer_expression "*(undefined4 *)&this_00->symsize_" * (cast_expression "(undefined4 *)&this_00->symsize_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->symsize_" & (field_expression "this_00->symsize_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "sym = (Symbol *)&local_30;" (assignment_expression "sym = (Symbol *)&local_30" identifier = (cast_expression "(Symbol *)&local_30" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30" & identifier))) ;) (expression_statement "local_30 = this_00;" (assignment_expression "local_30 = this_00" identifier = identifier) ;) (expression_statement "puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_);" (assignment_expression "puVar6 = (undefined4 *)(*(code *)puVar9)(&this->weak_aliases_)" identifier = (cast_expression "(undefined4 *)(*(code *)puVar9)(&this->weak_aliases_)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar9)(&this->weak_aliases_)" (parenthesized_expression "(*(code *)puVar9)" ( (pointer_expression "*(code *)puVar9" * (cast_expression "(code *)puVar9" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&this->weak_aliases_)" ( (pointer_expression "&this->weak_aliases_" & (field_expression "this->weak_aliases_" identifier -> field_identifier)) ))))) ;) (if_statement "if ((Symbol_table *)*puVar6 == (Symbol_table *)0x0) {\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }" if (parenthesized_expression "((Symbol_table *)*puVar6 == (Symbol_table *)0x0)" ( (binary_expression "(Symbol_table *)*puVar6 == (Symbol_table *)0x0" (cast_expression "(Symbol_table *)*puVar6" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar5 = 0x45d;\n        goto LAB_0030ec30;\n      }" { (expression_statement "uVar5 = 0x45d;" (assignment_expression "uVar5 = 0x45d" identifier = number_literal) ;) (goto_statement "goto LAB_0030ec30;" goto statement_identifier ;) })) (expression_statement "this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym);" (assignment_expression "this_00 = get_sized_symbol<64>((Symbol_table *)*puVar6,sym)" identifier = (binary_expression "get_sized_symbol<64>((Symbol_table *)*puVar6,sym)" (binary_expression "get_sized_symbol<64" identifier < number_literal) > (parenthesized_expression "((Symbol_table *)*puVar6,sym)" ( (comma_expression "(Symbol_table *)*puVar6,sym" (cast_expression "(Symbol_table *)*puVar6" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) , identifier) )))) ;) }) while (parenthesized_expression "(tosym != this_00)" ( (binary_expression "tosym != this_00" identifier != identifier) )) ;) (expression_statement "iVar2 = *(int *)&(tosym->super_Symbol).field_0x28;" (assignment_expression "iVar2 = *(int *)&(tosym->super_Symbol).field_0x28" identifier = (pointer_expression "*(int *)&(tosym->super_Symbol).field_0x28" * (cast_expression "(int *)&(tosym->super_Symbol).field_0x28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(tosym->super_Symbol).field_0x28" & (field_expression "(tosym->super_Symbol).field_0x28" (parenthesized_expression "(tosym->super_Symbol)" ( (field_expression "tosym->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) })) (expression_statement "uVar10 = (uint)(iVar2 << 4) >> 0x1c;" (assignment_expression "uVar10 = (uint)(iVar2 << 4) >> 0x1c" identifier = (binary_expression "(uint)(iVar2 << 4) >> 0x1c" (call_expression "(uint)(iVar2 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 << 4)" ( (binary_expression "iVar2 << 4" identifier << number_literal) ))) >> number_literal)) ;) (if_statement "if (uVar10 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,tosym);\n    return;\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,tosym);\n    return;\n  }" { (labeled_statement "LAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,tosym);" statement_identifier : (expression_statement "(*(code *)PTR_force_local_004c4a24)(this,tosym);" (call_expression "(*(code *)PTR_force_local_004c4a24)(this,tosym)" (parenthesized_expression "(*(code *)PTR_force_local_004c4a24)" ( (pointer_expression "*(code *)PTR_force_local_004c4a24" * (cast_expression "(code *)PTR_force_local_004c4a24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this,tosym)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))\n     ) {\n    puVar9 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;\n      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar12 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);\n      if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }\n      p_Var4 = (_Hash_node_base *)puVar6[2];\n      puVar6[2] = 0;\n      if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }\n      puVar6[1] = this_01;\n      *puVar6 = pp_Var3;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" if (parenthesized_expression "(((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))\n     )" ( (binary_expression "((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))" (parenthesized_expression "((((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2)" ( (binary_expression "(((uint)(iVar2 << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(iVar2 << 8) >> 0x1e) + 3 & 3)" ( (binary_expression "((uint)(iVar2 << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(iVar2 << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(iVar2 << 8) >> 0x1e)" ( (binary_expression "(uint)(iVar2 << 8) >> 0x1e" (call_expression "(uint)(iVar2 << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 << 8)" ( (binary_expression "iVar2 << 8" identifier << number_literal) ))) >> number_literal) )) + number_literal) & number_literal) )) < number_literal) )) && (parenthesized_expression "(((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)))" ( (parenthesized_expression "((uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10))" ( (binary_expression "(uVar10 + 0xf & 0xf) < 2 || (uVar10 == 10)" (binary_expression "(uVar10 + 0xf & 0xf) < 2" (parenthesized_expression "(uVar10 + 0xf & 0xf)" ( (binary_expression "uVar10 + 0xf & 0xf" (binary_expression "uVar10 + 0xf" identifier + number_literal) & number_literal) )) < number_literal) || (parenthesized_expression "(uVar10 == 10)" ( (binary_expression "uVar10 == 10" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n    puVar9 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;\n      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar12 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);\n      if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }\n      p_Var4 = (_Hash_node_base *)puVar6[2];\n      puVar6[2] = 0;\n      if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }\n      puVar6[1] = this_01;\n      *puVar6 = pp_Var3;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" { (expression_statement "puVar9 = PTR_UINT_004c12dc;" (assignment_expression "puVar9 = PTR_UINT_004c12dc" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;\n      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar12 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);\n      if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }\n      p_Var4 = (_Hash_node_base *)puVar6[2];\n      puVar6[2] = 0;\n      if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }\n      puVar6[1] = this_01;\n      *puVar6 = pp_Var3;\n      return;\n    }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (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) )))) == number_literal) )) (compound_statement "{\nLAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;\n      puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar12 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);\n      if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }\n      p_Var4 = (_Hash_node_base *)puVar6[2];\n      puVar6[2] = 0;\n      if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }\n      puVar6[1] = this_01;\n      *puVar6 = pp_Var3;\n      return;\n    }" { (labeled_statement "LAB_0030ec48:\n      this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;" statement_identifier : (expression_statement "this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c;" (assignment_expression "this_01 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c" identifier = (binary_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)&DAT_0000005c" (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)" ( (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::" (comma_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::pair" : : identifier) < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol_location>_>_>,_false>_>_>\n                 *" (binary_expression "Symbol_location>_>_>,_false>_>_" (binary_expression "Symbol_location>_>_>,_false>_" (binary_expression "Symbol_location>_>_>,_false" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier)) ;)) (expression_statement "puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);" (assignment_expression "puVar6 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" identifier = (cast_expression "(undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) )))) ;) (expression_statement "puVar12 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar12 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0x5c,puVar9 + -0x71c4)" (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 "(puVar6,0x5c,puVar9 + -0x71c4)" ( identifier , number_literal , (binary_expression "puVar9 + -0x71c4" identifier + number_literal) ))) ;) (if_statement "if (this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1) {\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }\n      else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }" if (parenthesized_expression "(this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1)" ( (binary_expression "this_01 ==\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1)" identifier == (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n           *)0x1)" ( (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::" (comma_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::pair" : : identifier) < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol_location>_>_>,_false>_>_>\n           *)0x1" (binary_expression "Symbol_location>_>_>,_false>_>_" (binary_expression "Symbol_location>_>_>,_false>_" (binary_expression "Symbol_location>_>_>,_false" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*)0x1" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n        pp_Var3 = (__bucket_type *)(puVar6 + 6);\n        puVar6[6] = 0;\n      }" { (expression_statement "pp_Var3 = (__bucket_type *)(puVar6 + 6);" (assignment_expression "pp_Var3 = (__bucket_type *)(puVar6 + 6)" identifier = (cast_expression "(__bucket_type *)(puVar6 + 6)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 6)" ( (binary_expression "puVar6 + 6" identifier + number_literal) )))) ;) (expression_statement "puVar6[6] = 0;" (assignment_expression "puVar6[6] = 0" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }" else (compound_statement "{\n        pp_Var3 = std::__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);\n      }" { (ERROR "pp_Var3 = std::" (assignment_expression "pp_Var3 = std" identifier = identifier) : :) (expression_statement "__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01);" (comma_expression "__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01)" identifier (ERROR "::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>" : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std" identifier (ERROR "::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) >) , (binary_expression "_false>_>_>\n                  ::_M_allocate_buckets(this_01,(size_t)this_01)" (binary_expression "_false>_>_" (binary_expression "_false>_" identifier > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_allocate_buckets(this_01,(size_t)this_01)" identifier (argument_list "(this_01,(size_t)this_01)" ( identifier , (cast_expression "(size_t)this_01" ( (type_descriptor "size_t" primitive_type) ) identifier) ))))) ;) }))) (expression_statement "p_Var4 = (_Hash_node_base *)puVar6[2];" (assignment_expression "p_Var4 = (_Hash_node_base *)puVar6[2]" identifier = (cast_expression "(_Hash_node_base *)puVar6[2]" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (p_Var4 != (_Hash_node_base *)0x0) {\n        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }" if (parenthesized_expression "(p_Var4 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4 != (_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        uVar10 = 0;\n        do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        } while (p_Var11 != (_Hash_node_base *)0x0);" do (compound_statement "{\n          while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }\n          p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];\n          puVar6[2] = p_Var4;\n          *pp_Var7 = (__bucket_type)(puVar6 + 2);\n          if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;\n          pp_Var3[uVar10] = p_Var4;\n          p_Var4 = p_Var11;\n          uVar10 = uVar13;\n        }" { (while_statement "while( true ) {\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }\n            uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;\n            pp_Var7 = pp_Var3 + uVar13;\n            p_Var11 = p_Var4->_M_nxt;\n            if (*pp_Var7 == (__bucket_type)0x0) break;\n            p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;\n            (*pp_Var7)->_M_nxt = p_Var4;\n            uVar13 = uVar10;\nLAB_0030ecdc:\n            p_Var4 = p_Var11;\n            uVar10 = uVar13;\n            if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;\n          }" { (if_statement "if (this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0) {\n              trap(7);\n            }" if (parenthesized_expression "(this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0)" ( (binary_expression "this_01 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0)" identifier == (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_false>_>_>\n                 *)0x0)" ( (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::" (comma_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::pair" : : identifier) < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol_location>_>_>,_false>_>_>\n                 *)0x0" (binary_expression "Symbol_location>_>_>,_false>_>_" (binary_expression "Symbol_location>_>_>,_false>_" (binary_expression "Symbol_location>_>_>,_false" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n              trap(7);\n            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01;" (assignment_expression "uVar13 = (uint)p_Var4[6]._M_nxt % (uint)this_01" identifier = (binary_expression "(uint)p_Var4[6]._M_nxt % (uint)this_01" (cast_expression "(uint)p_Var4[6]._M_nxt" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_Var4[6]._M_nxt" (subscript_expression "p_Var4[6]" identifier [ number_literal ]) . field_identifier)) % (cast_expression "(uint)this_01" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pp_Var7 = pp_Var3 + uVar13;" (assignment_expression "pp_Var7 = pp_Var3 + uVar13" identifier = (binary_expression "pp_Var3 + uVar13" identifier + identifier)) ;) (expression_statement "p_Var11 = p_Var4->_M_nxt;" (assignment_expression "p_Var11 = p_Var4->_M_nxt" identifier = (field_expression "p_Var4->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if (*pp_Var7 == (__bucket_type)0x0) break;" if (parenthesized_expression "(*pp_Var7 == (__bucket_type)0x0)" ( (binary_expression "*pp_Var7 == (__bucket_type)0x0" (pointer_expression "*pp_Var7" * identifier) == (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var4->_M_nxt = (*pp_Var7)->_M_nxt;" (assignment_expression "p_Var4->_M_nxt = (*pp_Var7)->_M_nxt" (field_expression "p_Var4->_M_nxt" identifier -> field_identifier) = (field_expression "(*pp_Var7)->_M_nxt" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) -> field_identifier)) ;) (expression_statement "(*pp_Var7)->_M_nxt = p_Var4;" (assignment_expression "(*pp_Var7)->_M_nxt = p_Var4" (field_expression "(*pp_Var7)->_M_nxt" (parenthesized_expression "(*pp_Var7)" ( (pointer_expression "*pp_Var7" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar13 = uVar10;" (assignment_expression "uVar13 = uVar10" identifier = identifier) ;) (labeled_statement "LAB_0030ecdc:\n            p_Var4 = p_Var11;" statement_identifier : (expression_statement "p_Var4 = p_Var11;" (assignment_expression "p_Var4 = p_Var11" identifier = identifier) ;)) (expression_statement "uVar10 = uVar13;" (assignment_expression "uVar10 = uVar13" identifier = identifier) ;) (if_statement "if (p_Var11 == (_Hash_node_base *)0x0) goto LAB_0030ed38;" if (parenthesized_expression "(p_Var11 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var11 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0030ed38;" goto statement_identifier ;)) })) (expression_statement "p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2];" (assignment_expression "p_Var4->_M_nxt = (_Hash_node_base *)puVar6[2]" (field_expression "p_Var4->_M_nxt" identifier -> field_identifier) = (cast_expression "(_Hash_node_base *)puVar6[2]" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar6[2] = p_Var4;" (assignment_expression "puVar6[2] = p_Var4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pp_Var7 = (__bucket_type)(puVar6 + 2);" (assignment_expression "*pp_Var7 = (__bucket_type)(puVar6 + 2)" (pointer_expression "*pp_Var7" * identifier) = (call_expression "(__bucket_type)(puVar6 + 2)" (parenthesized_expression "(__bucket_type)" ( identifier )) (argument_list "(puVar6 + 2)" ( (binary_expression "puVar6 + 2" identifier + number_literal) )))) ;) (if_statement "if (p_Var4->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0030ecdc;" if (parenthesized_expression "(p_Var4->_M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4->_M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var4->_M_nxt" identifier -> field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0030ecdc;" goto statement_identifier ;)) (expression_statement "pp_Var3[uVar10] = p_Var4;" (assignment_expression "pp_Var3[uVar10] = p_Var4" (subscript_expression "pp_Var3[uVar10]" identifier [ identifier ]) = identifier) ;) (expression_statement "p_Var4 = p_Var11;" (assignment_expression "p_Var4 = p_Var11" identifier = identifier) ;) (expression_statement "uVar10 = uVar13;" (assignment_expression "uVar10 = uVar13" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var11 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var11 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0030ed38:\n      if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }" statement_identifier : (if_statement "if (puVar6 + 6 != (undefined4 *)*puVar6) {\n        (**(code **)(puVar12 + 0x1b269c))();\n      }" if (parenthesized_expression "(puVar6 + 6 != (undefined4 *)*puVar6)" ( (binary_expression "puVar6 + 6 != (undefined4 *)*puVar6" (binary_expression "puVar6 + 6" identifier + number_literal) != (cast_expression "(undefined4 *)*puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) )) (compound_statement "{\n        (**(code **)(puVar12 + 0x1b269c))();\n      }" { (expression_statement "(**(code **)(puVar12 + 0x1b269c))();" (call_expression "(**(code **)(puVar12 + 0x1b269c))()" (parenthesized_expression "(**(code **)(puVar12 + 0x1b269c))" ( (pointer_expression "**(code **)(puVar12 + 0x1b269c)" * (pointer_expression "*(code **)(puVar12 + 0x1b269c)" * (cast_expression "(code **)(puVar12 + 0x1b269c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x1b269c)" ( (binary_expression "puVar12 + 0x1b269c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "puVar6[1] = this_01;" (assignment_expression "puVar6[1] = this_01" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = pp_Var3;" (assignment_expression "*puVar6 = pp_Var3" (pointer_expression "*puVar6" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195" (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) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0030eb34;" goto statement_identifier ;)) })) (return_statement "return;" return ;) })))
(translation_unit "void __thiscall\ngold::Symbol_table::override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)\n\n{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}\n\n" (function_definition "void __thiscall\ngold::Symbol_table::override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)\n\n{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)" identifier (ERROR "<64>" < number_literal >) (parameter_list "(Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Sized_symbol *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Symbol *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Sized_symbol *local_30 [2];" type_identifier (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (labeled_statement "Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);" statement_identifier : (ERROR ":" :) (expression_statement "override_base_with_special((Symbol *)param_1,(Symbol *)param_2);" (call_expression "override_base_with_special((Symbol *)param_1,(Symbol *)param_2)" identifier (argument_list "((Symbol *)param_1,(Symbol *)param_2)" ( (cast_expression "(Symbol *)param_1" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Symbol *)param_2" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x30)" * (cast_expression "(undefined4 *)(param_2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "uVar7 = *(undefined4 *)(param_2 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" * (cast_expression "(undefined4 *)(param_2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "uVar4 = *(undefined4 *)(param_2 + 0x38)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x38)" * (cast_expression "(undefined4 *)(param_2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x34)" * (cast_expression "(undefined4 *)(param_2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x30) = uVar9;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = uVar9" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" * (cast_expression "(undefined4 *)(param_1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = uVar7;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = uVar7" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined4 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = PTR_operator___004c4ab4;" (assignment_expression "puVar10 = PTR_operator___004c4ab4" identifier = identifier) ;) (if_statement "if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }" if (parenthesized_expression "(iVar1 << 0x15 < 0)" ( (binary_expression "iVar1 << 0x15 < 0" (binary_expression "iVar1 << 0x15" identifier << number_literal) < number_literal) )) (compound_statement "{\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }" { (expression_statement "local_30[0] = param_1;" (assignment_expression "local_30[0] = param_1" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" (parenthesized_expression "(*(code *)PTR_operator___004c4ab4)" ( (pointer_expression "*(code *)PTR_operator___004c4ab4" * (cast_expression "(code *)PTR_operator___004c4ab4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0xb4,local_30)" ( (binary_expression "this + 0xb4" identifier + number_literal) , identifier ))))) ;) (expression_statement "uVar4 = 0x457;" (assignment_expression "uVar4 = 0x457" identifier = number_literal) ;) (if_statement "if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }" { (labeled_statement "LAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;" statement_identifier : (expression_statement "puVar10 = PTR_UINT_004c12dc + -0x7304;" (assignment_expression "puVar10 = PTR_UINT_004c12dc + -0x7304" identifier = (binary_expression "PTR_UINT_004c12dc + -0x7304" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10)" (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_UINT_004c12dc + -0x7758,uVar4,puVar10)" ( (binary_expression "PTR_UINT_004c12dc + -0x7758" identifier + number_literal) , identifier , identifier ))) ;) (goto_statement "goto LAB_0030ec48;" goto statement_identifier ;) })) (expression_statement "this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);" (assignment_expression "this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457)" identifier = (cast_expression "(Symbol *)FUN_0030c900(*piVar3,0x457)" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030c900(*piVar3,0x457)" identifier (argument_list "(*piVar3,0x457)" ( (pointer_expression "*piVar3" * identifier) , number_literal ))))) ;) (do_statement "do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);" do (compound_statement "{\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    }" { (labeled_statement "Symbol::override_base_with_special(this_00,(Symbol *)param_2);" statement_identifier : (ERROR ":" :) (expression_statement "override_base_with_special(this_00,(Symbol *)param_2);" (call_expression "override_base_with_special(this_00,(Symbol *)param_2)" identifier (argument_list "(this_00,(Symbol *)param_2)" ( identifier , (cast_expression "(Symbol *)param_2" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x30)" * (cast_expression "(undefined4 *)(param_2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "uVar7 = *(undefined4 *)(param_2 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" * (cast_expression "(undefined4 *)(param_2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "uVar4 = *(undefined4 *)(param_2 + 0x38)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x38)" * (cast_expression "(undefined4 *)(param_2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(this_00 + 0x34)" * (cast_expression "(undefined4 *)(this_00 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x34)" ( (binary_expression "this_00 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x34)" * (cast_expression "(undefined4 *)(param_2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(this_00 + 0x30) = uVar9;" (assignment_expression "*(undefined4 *)(this_00 + 0x30) = uVar9" (pointer_expression "*(undefined4 *)(this_00 + 0x30)" * (cast_expression "(undefined4 *)(this_00 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x30)" ( (binary_expression "this_00 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this_00 + 0x3c) = uVar7;" (assignment_expression "*(undefined4 *)(this_00 + 0x3c) = uVar7" (pointer_expression "*(undefined4 *)(this_00 + 0x3c)" * (cast_expression "(undefined4 *)(this_00 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x3c)" ( (binary_expression "this_00 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this_00 + 0x38) = uVar4;" (assignment_expression "*(undefined4 *)(this_00 + 0x38) = uVar4" (pointer_expression "*(undefined4 *)(this_00 + 0x38)" * (cast_expression "(undefined4 *)(this_00 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x38)" ( (binary_expression "this_00 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30[0] = (Sized_symbol *)this_00;" (assignment_expression "local_30[0] = (Sized_symbol *)this_00" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (cast_expression "(Sized_symbol *)this_00" ( (type_descriptor "Sized_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);" (assignment_expression "piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30)" identifier = (cast_expression "(int *)(*(code *)puVar10)(this + 0xb4,local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar10)(this + 0xb4,local_30)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this + 0xb4,local_30)" ( (binary_expression "this + 0xb4" identifier + number_literal) , identifier ))))) ;) (if_statement "if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }" { (expression_statement "uVar4 = 0x45d;" (assignment_expression "uVar4 = 0x45d" identifier = number_literal) ;) (goto_statement "goto LAB_0030ec30;" goto statement_identifier ;) })) (expression_statement "this_00 = (Symbol *)FUN_0030c900();" (assignment_expression "this_00 = (Symbol *)FUN_0030c900()" identifier = (cast_expression "(Symbol *)FUN_0030c900()" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030c900()" identifier (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "(param_1 != (Sized_symbol *)this_00)" ( (binary_expression "param_1 != (Sized_symbol *)this_00" identifier != (cast_expression "(Sized_symbol *)this_00" ( (type_descriptor "Sized_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) })) (expression_statement "uVar8 = (uint)(iVar1 << 4) >> 0x1c;" (assignment_expression "uVar8 = (uint)(iVar1 << 4) >> 0x1c" identifier = (binary_expression "(uint)(iVar1 << 4) >> 0x1c" (call_expression "(uint)(iVar1 << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 << 4)" ( (binary_expression "iVar1 << 4" identifier << number_literal) ))) >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }" { (labeled_statement "LAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);" statement_identifier : (expression_statement "(*(code *)PTR_force_local_004c4a24)(this,param_1);" (call_expression "(*(code *)PTR_force_local_004c4a24)(this,param_1)" (parenthesized_expression "(*(code *)PTR_force_local_004c4a24)" ( (pointer_expression "*(code *)PTR_force_local_004c4a24" * (cast_expression "(code *)PTR_force_local_004c4a24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this,param_1)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" if (parenthesized_expression "(((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))" ( (binary_expression "((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)))" (parenthesized_expression "((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2)" ( (binary_expression "(((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(iVar1 << 8) >> 0x1e) + 3 & 3)" ( (binary_expression "((uint)(iVar1 << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(iVar1 << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(iVar1 << 8) >> 0x1e)" ( (binary_expression "(uint)(iVar1 << 8) >> 0x1e" (call_expression "(uint)(iVar1 << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 << 8)" ( (binary_expression "iVar1 << 8" identifier << number_literal) ))) >> number_literal) )) + number_literal) & number_literal) )) < number_literal) )) && (parenthesized_expression "(((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)))" ( (parenthesized_expression "((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))" ( (binary_expression "(uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)" (binary_expression "(uVar8 + 0xf & 0xf) < 2" (parenthesized_expression "(uVar8 + 0xf & 0xf)" ( (binary_expression "uVar8 + 0xf & 0xf" (binary_expression "uVar8 + 0xf" identifier + number_literal) & number_literal) )) < number_literal) || (parenthesized_expression "(uVar8 == 10)" ( (binary_expression "uVar8 == 10" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" { (expression_statement "puVar10 = PTR_UINT_004c12dc;" (assignment_expression "puVar10 = PTR_UINT_004c12dc" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (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) )))) == number_literal) )) (compound_statement "{\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }" { (labeled_statement "LAB_0030ec48:\n      uVar8 = 0x5c;" statement_identifier : (expression_statement "uVar8 = 0x5c;" (assignment_expression "uVar8 = 0x5c" identifier = number_literal) ;)) (expression_statement "puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);" (assignment_expression "puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" identifier = (cast_expression "(undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) )))) ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4)" (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 "(puVar5,0x5c,puVar10 + -0x71c4)" ( identifier , number_literal , (binary_expression "puVar10 + -0x71c4" identifier + number_literal) ))) ;) (if_statement "if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }" { (expression_statement "puVar2 = puVar5 + 6;" (assignment_expression "puVar2 = puVar5 + 6" identifier = (binary_expression "puVar5 + 6" identifier + number_literal)) ;) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" else (compound_statement "{\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" { (expression_statement "puVar2 = (undefined4 *)FUN_0030c980(uVar8);" (assignment_expression "puVar2 = (undefined4 *)FUN_0030c980(uVar8)" identifier = (cast_expression "(undefined4 *)FUN_0030c980(uVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030c980(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))))) ;) }))) (expression_statement "piVar3 = (int *)puVar5[2];" (assignment_expression "piVar3 = (int *)puVar5[2]" identifier = (cast_expression "(int *)puVar5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);" do (compound_statement "{\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        }" { (while_statement "while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }" { (if_statement "if (uVar8 == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              trap(7);\n            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar14 = (uint)piVar3[6] % uVar8;" (assignment_expression "uVar14 = (uint)piVar3[6] % uVar8" identifier = (binary_expression "(uint)piVar3[6] % uVar8" (cast_expression "(uint)piVar3[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[6]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "puVar6 = puVar2 + uVar14;" (assignment_expression "puVar6 = puVar2 + uVar14" identifier = (binary_expression "puVar2 + uVar14" identifier + identifier)) ;) (expression_statement "piVar12 = (int *)*piVar3;" (assignment_expression "piVar12 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if ((int *)*puVar6 == (int *)0x0) break;" if (parenthesized_expression "((int *)*puVar6 == (int *)0x0)" ( (binary_expression "(int *)*puVar6 == (int *)0x0" (cast_expression "(int *)*puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*piVar3 = *(int *)*puVar6;" (assignment_expression "*piVar3 = *(int *)*puVar6" (pointer_expression "*piVar3" * identifier) = (pointer_expression "*(int *)*puVar6" * (cast_expression "(int *)*puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier)))) ;) (expression_statement "*(int **)*puVar6 = piVar3;" (assignment_expression "*(int **)*puVar6 = piVar3" (pointer_expression "*(int **)*puVar6" * (cast_expression "(int **)*puVar6" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar6" * identifier))) = identifier) ;) (expression_statement "uVar14 = uVar11;" (assignment_expression "uVar14 = uVar11" identifier = identifier) ;) (labeled_statement "LAB_0030ecdc:\n            piVar3 = piVar12;" statement_identifier : (expression_statement "piVar3 = piVar12;" (assignment_expression "piVar3 = piVar12" identifier = identifier) ;)) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" identifier = identifier) ;) (if_statement "if (piVar12 == (int *)0x0) goto LAB_0030ed38;" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0030ed38;" goto statement_identifier ;)) })) (expression_statement "*piVar3 = puVar5[2];" (assignment_expression "*piVar3 = puVar5[2]" (pointer_expression "*piVar3" * identifier) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "puVar5[2] = piVar3;" (assignment_expression "puVar5[2] = piVar3" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = puVar5 + 2;" (assignment_expression "*puVar6 = puVar5 + 2" (pointer_expression "*puVar6" * identifier) = (binary_expression "puVar5 + 2" identifier + number_literal)) ;) (if_statement "if (*piVar3 == 0) goto LAB_0030ecdc;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0030ecdc;" goto statement_identifier ;)) (expression_statement "puVar2[uVar11] = piVar3;" (assignment_expression "puVar2[uVar11] = piVar3" (subscript_expression "puVar2[uVar11]" identifier [ identifier ]) = identifier) ;) (expression_statement "piVar3 = piVar12;" (assignment_expression "piVar3 = piVar12" identifier = identifier) ;) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" identifier = identifier) ;) }) while (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" statement_identifier : (if_statement "if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" if (parenthesized_expression "(puVar5 + 6 != (undefined4 *)*puVar5)" ( (binary_expression "puVar5 + 6 != (undefined4 *)*puVar5" (binary_expression "puVar5 + 6" identifier + number_literal) != (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) )) (compound_statement "{\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" { (expression_statement "(**(code **)(puVar13 + 0x1b269c))();" (call_expression "(**(code **)(puVar13 + 0x1b269c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1b269c))" ( (pointer_expression "**(code **)(puVar13 + 0x1b269c)" * (pointer_expression "*(code **)(puVar13 + 0x1b269c)" * (cast_expression "(code **)(puVar13 + 0x1b269c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1b269c)" ( (binary_expression "puVar13 + 0x1b269c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "puVar5[1] = uVar8;" (assignment_expression "puVar5[1] = uVar8" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar5 = puVar2;" (assignment_expression "*puVar5 = puVar2" (pointer_expression "*puVar5" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195" (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) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0030eb34;" goto statement_identifier ;)) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (ERROR < LIT >) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (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) , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT ))))) ;) (do_statement do (compound_statement { (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;)) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )) + LIT) & LIT) )) < LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) < LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) % IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) (return_statement return ;) })))
(function_definition "void __thiscall\ngold::Symbol_table::override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)\n\n{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Symbol_table::" (identifier "gold") (: ":") (: ":") (identifier "Symbol_table") (: ":") (: ":")) (function_declarator "override_with_special<64>\n          (Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)" (identifier "override_with_special") (ERROR "<64>" (< "<") (number_literal "64") (> ">")) (parameter_list "(Symbol_table *this,Sized_symbol *param_1,Sized_symbol *param_2)" (( "(") (parameter_declaration "Symbol_table *this" (type_identifier "Symbol_table") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Sized_symbol *param_1" (type_identifier "Sized_symbol") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Sized_symbol *param_2" (type_identifier "Sized_symbol") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  Symbol *this_00;\n  undefined4 *puVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *puVar13;\n  uint uVar14;\n  Sized_symbol *local_30 [2];\n  \n  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);\n  iVar1 = *(int *)(param_1 + 0x28);\n  uVar9 = *(undefined4 *)(param_2 + 0x30);\n  uVar7 = *(undefined4 *)(param_2 + 0x3c);\n  uVar4 = *(undefined4 *)(param_2 + 0x38);\n  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n  *(undefined4 *)(param_1 + 0x30) = uVar9;\n  *(undefined4 *)(param_1 + 0x3c) = uVar7;\n  *(undefined4 *)(param_1 + 0x38) = uVar4;\n  puVar10 = PTR_operator___004c4ab4;\n  if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }\n  uVar8 = (uint)(iVar1 << 4) >> 0x1c;\n  if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }\n  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "Symbol *this_00;" (type_identifier "Symbol") (pointer_declarator "*this_00" (* "*") (identifier "this_00")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "Sized_symbol *local_30 [2];" (type_identifier "Sized_symbol") (pointer_declarator "*local_30 [2]" (* "*") (array_declarator "local_30 [2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]"))) (; ";")) (labeled_statement "Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);" (statement_identifier "Symbol") (: ":") (ERROR ":" (: ":")) (expression_statement "override_base_with_special((Symbol *)param_1,(Symbol *)param_2);" (call_expression "override_base_with_special((Symbol *)param_1,(Symbol *)param_2)" (identifier "override_base_with_special") (argument_list "((Symbol *)param_1,(Symbol *)param_2)" (( "(") (cast_expression "(Symbol *)param_1" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) (, ",") (cast_expression "(Symbol *)param_2" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")"))) (; ";"))) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x30)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "uVar7 = *(undefined4 *)(param_2 + 0x3c)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "uVar4 = *(undefined4 *)(param_2 + 0x38)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x30) = uVar9;" (assignment_expression "*(undefined4 *)(param_1 + 0x30) = uVar9" (pointer_expression "*(undefined4 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x3c) = uVar7;" (assignment_expression "*(undefined4 *)(param_1 + 0x3c) = uVar7" (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x38) = uVar4;" (assignment_expression "*(undefined4 *)(param_1 + 0x38) = uVar4" (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar10 = PTR_operator___004c4ab4;" (assignment_expression "puVar10 = PTR_operator___004c4ab4" (identifier "puVar10") (= "=") (identifier "PTR_operator___004c4ab4")) (; ";")) (if_statement "if (iVar1 << 0x15 < 0) {\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }" (if "if") (parenthesized_expression "(iVar1 << 0x15 < 0)" (( "(") (binary_expression "iVar1 << 0x15 < 0" (binary_expression "iVar1 << 0x15" (identifier "iVar1") (<< "<<") (number_literal "0x15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    local_30[0] = param_1;\n    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);\n    uVar4 = 0x457;\n    if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }\n    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);\n    do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);\n    iVar1 = *(int *)(param_1 + 0x28);\n  }" ({ "{") (expression_statement "local_30[0] = param_1;" (assignment_expression "local_30[0] = param_1" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30)" (parenthesized_expression "(*(code *)PTR_operator___004c4ab4)" (( "(") (pointer_expression "*(code *)PTR_operator___004c4ab4" (* "*") (cast_expression "(code *)PTR_operator___004c4ab4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator___004c4ab4"))) () ")")) (argument_list "(this + 0xb4,local_30)" (( "(") (binary_expression "this + 0xb4" (identifier "this") (+ "+") (number_literal "0xb4")) (, ",") (identifier "local_30") () ")"))))) (; ";")) (expression_statement "uVar4 = 0x457;" (assignment_expression "uVar4 = 0x457" (identifier "uVar4") (= "=") (number_literal "0x457")) (; ";")) (if_statement "if (*piVar3 == 0) {\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);\n      goto LAB_0030ec48;\n    }" ({ "{") (labeled_statement "LAB_0030ec30:\n      puVar10 = PTR_UINT_004c12dc + -0x7304;" (statement_identifier "LAB_0030ec30") (: ":") (expression_statement "puVar10 = PTR_UINT_004c12dc + -0x7304;" (assignment_expression "puVar10 = PTR_UINT_004c12dc + -0x7304" (identifier "puVar10") (= "=") (binary_expression "PTR_UINT_004c12dc + -0x7304" (identifier "PTR_UINT_004c12dc") (+ "+") (number_literal "-0x7304"))) (; ";"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10)" (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_UINT_004c12dc + -0x7758,uVar4,puVar10)" (( "(") (binary_expression "PTR_UINT_004c12dc + -0x7758" (identifier "PTR_UINT_004c12dc") (+ "+") (number_literal "-0x7758")) (, ",") (identifier "uVar4") (, ",") (identifier "puVar10") () ")"))) (; ";")) (goto_statement "goto LAB_0030ec48;" (goto "goto") (statement_identifier "LAB_0030ec48") (; ";")) (} "}"))) (expression_statement "this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);" (assignment_expression "this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457)" (identifier "this_00") (= "=") (cast_expression "(Symbol *)FUN_0030c900(*piVar3,0x457)" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0030c900(*piVar3,0x457)" (identifier "FUN_0030c900") (argument_list "(*piVar3,0x457)" (( "(") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (, ",") (number_literal "0x457") () ")"))))) (; ";")) (do_statement "do {\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    } while (param_1 != (Sized_symbol *)this_00);" (do "do") (compound_statement "{\n      Symbol::override_base_with_special(this_00,(Symbol *)param_2);\n      uVar9 = *(undefined4 *)(param_2 + 0x30);\n      uVar7 = *(undefined4 *)(param_2 + 0x3c);\n      uVar4 = *(undefined4 *)(param_2 + 0x38);\n      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);\n      *(undefined4 *)(this_00 + 0x30) = uVar9;\n      *(undefined4 *)(this_00 + 0x3c) = uVar7;\n      *(undefined4 *)(this_00 + 0x38) = uVar4;\n      local_30[0] = (Sized_symbol *)this_00;\n      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);\n      if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }\n      this_00 = (Symbol *)FUN_0030c900();\n    }" ({ "{") (labeled_statement "Symbol::override_base_with_special(this_00,(Symbol *)param_2);" (statement_identifier "Symbol") (: ":") (ERROR ":" (: ":")) (expression_statement "override_base_with_special(this_00,(Symbol *)param_2);" (call_expression "override_base_with_special(this_00,(Symbol *)param_2)" (identifier "override_base_with_special") (argument_list "(this_00,(Symbol *)param_2)" (( "(") (identifier "this_00") (, ",") (cast_expression "(Symbol *)param_2" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")"))) (; ";"))) (expression_statement "uVar9 = *(undefined4 *)(param_2 + 0x30);" (assignment_expression "uVar9 = *(undefined4 *)(param_2 + 0x30)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(param_2 + 0x3c);" (assignment_expression "uVar7 = *(undefined4 *)(param_2 + 0x3c)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(param_2 + 0x38);" (assignment_expression "uVar4 = *(undefined4 *)(param_2 + 0x38)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);" (assignment_expression "*(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34)" (pointer_expression "*(undefined4 *)(this_00 + 0x34)" (* "*") (cast_expression "(undefined4 *)(this_00 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x34)" (( "(") (binary_expression "this_00 + 0x34" (identifier "this_00") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(this_00 + 0x30) = uVar9;" (assignment_expression "*(undefined4 *)(this_00 + 0x30) = uVar9" (pointer_expression "*(undefined4 *)(this_00 + 0x30)" (* "*") (cast_expression "(undefined4 *)(this_00 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x30)" (( "(") (binary_expression "this_00 + 0x30" (identifier "this_00") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined4 *)(this_00 + 0x3c) = uVar7;" (assignment_expression "*(undefined4 *)(this_00 + 0x3c) = uVar7" (pointer_expression "*(undefined4 *)(this_00 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(this_00 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x3c)" (( "(") (binary_expression "this_00 + 0x3c" (identifier "this_00") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(this_00 + 0x38) = uVar4;" (assignment_expression "*(undefined4 *)(this_00 + 0x38) = uVar4" (pointer_expression "*(undefined4 *)(this_00 + 0x38)" (* "*") (cast_expression "(undefined4 *)(this_00 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x38)" (( "(") (binary_expression "this_00 + 0x38" (identifier "this_00") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "local_30[0] = (Sized_symbol *)this_00;" (assignment_expression "local_30[0] = (Sized_symbol *)this_00" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(Sized_symbol *)this_00" (( "(") (type_descriptor "Sized_symbol *" (type_identifier "Sized_symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this_00"))) (; ";")) (expression_statement "piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);" (assignment_expression "piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)puVar10)(this + 0xb4,local_30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)puVar10)(this + 0xb4,local_30)" (parenthesized_expression "(*(code *)puVar10)" (( "(") (pointer_expression "*(code *)puVar10" (* "*") (cast_expression "(code *)puVar10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) () ")")) (argument_list "(this + 0xb4,local_30)" (( "(") (binary_expression "this + 0xb4" (identifier "this") (+ "+") (number_literal "0xb4")) (, ",") (identifier "local_30") () ")"))))) (; ";")) (if_statement "if (*piVar3 == 0) {\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = 0x45d;\n        goto LAB_0030ec30;\n      }" ({ "{") (expression_statement "uVar4 = 0x45d;" (assignment_expression "uVar4 = 0x45d" (identifier "uVar4") (= "=") (number_literal "0x45d")) (; ";")) (goto_statement "goto LAB_0030ec30;" (goto "goto") (statement_identifier "LAB_0030ec30") (; ";")) (} "}"))) (expression_statement "this_00 = (Symbol *)FUN_0030c900();" (assignment_expression "this_00 = (Symbol *)FUN_0030c900()" (identifier "this_00") (= "=") (cast_expression "(Symbol *)FUN_0030c900()" (( "(") (type_descriptor "Symbol *" (type_identifier "Symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0030c900()" (identifier "FUN_0030c900") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_1 != (Sized_symbol *)this_00)" (( "(") (binary_expression "param_1 != (Sized_symbol *)this_00" (identifier "param_1") (!= "!=") (cast_expression "(Sized_symbol *)this_00" (( "(") (type_descriptor "Sized_symbol *" (type_identifier "Sized_symbol") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this_00"))) () ")")) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x28)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar8 = (uint)(iVar1 << 4) >> 0x1c;" (assignment_expression "uVar8 = (uint)(iVar1 << 4) >> 0x1c" (identifier "uVar8") (= "=") (binary_expression "(uint)(iVar1 << 4) >> 0x1c" (call_expression "(uint)(iVar1 << 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar1 << 4)" (( "(") (binary_expression "iVar1 << 4" (identifier "iVar1") (<< "<<") (number_literal "4")) () ")"))) (>> ">>") (number_literal "0x1c"))) (; ";")) (if_statement "if (uVar8 == 0) {\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);\n    return;\n  }" ({ "{") (labeled_statement "LAB_0030eb34:\n    (*(code *)PTR_force_local_004c4a24)(this,param_1);" (statement_identifier "LAB_0030eb34") (: ":") (expression_statement "(*(code *)PTR_force_local_004c4a24)(this,param_1);" (call_expression "(*(code *)PTR_force_local_004c4a24)(this,param_1)" (parenthesized_expression "(*(code *)PTR_force_local_004c4a24)" (( "(") (pointer_expression "*(code *)PTR_force_local_004c4a24" (* "*") (cast_expression "(code *)PTR_force_local_004c4a24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_force_local_004c4a24"))) () ")")) (argument_list "(this,param_1)" (( "(") (identifier "this") (, ",") (identifier "param_1") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))\n  {\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" (if "if") (parenthesized_expression "(((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))" (( "(") (binary_expression "((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)))" (parenthesized_expression "((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2)" (( "(") (binary_expression "(((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2" (parenthesized_expression "(((uint)(iVar1 << 8) >> 0x1e) + 3 & 3)" (( "(") (binary_expression "((uint)(iVar1 << 8) >> 0x1e) + 3 & 3" (binary_expression "((uint)(iVar1 << 8) >> 0x1e) + 3" (parenthesized_expression "((uint)(iVar1 << 8) >> 0x1e)" (( "(") (binary_expression "(uint)(iVar1 << 8) >> 0x1e" (call_expression "(uint)(iVar1 << 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar1 << 8)" (( "(") (binary_expression "iVar1 << 8" (identifier "iVar1") (<< "<<") (number_literal "8")) () ")"))) (>> ">>") (number_literal "0x1e")) () ")")) (+ "+") (number_literal "3")) (& "&") (number_literal "3")) () ")")) (< "<") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)))" (( "(") (parenthesized_expression "((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))" (( "(") (binary_expression "(uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10)" (binary_expression "(uVar8 + 0xf & 0xf) < 2" (parenthesized_expression "(uVar8 + 0xf & 0xf)" (( "(") (binary_expression "uVar8 + 0xf & 0xf" (binary_expression "uVar8 + 0xf" (identifier "uVar8") (+ "+") (number_literal "0xf")) (& "&") (number_literal "0xf")) () ")")) (< "<") (number_literal "2")) (|| "||") (parenthesized_expression "(uVar8 == 10)" (( "(") (binary_expression "uVar8 == 10" (identifier "uVar8") (== "==") (number_literal "10")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    puVar10 = PTR_UINT_004c12dc;\n    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }\n    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;\n  }" ({ "{") (expression_statement "puVar10 = PTR_UINT_004c12dc;" (assignment_expression "puVar10 = PTR_UINT_004c12dc" (identifier "puVar10") (= "=") (identifier "PTR_UINT_004c12dc")) (; ";")) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (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")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0030ec48:\n      uVar8 = 0x5c;\n      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n      puVar13 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);\n      if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }\n      piVar3 = (int *)puVar5[2];\n      puVar5[2] = 0;\n      if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }\nLAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }\n      puVar5[1] = uVar8;\n      *puVar5 = puVar2;\n      return;\n    }" ({ "{") (labeled_statement "LAB_0030ec48:\n      uVar8 = 0x5c;" (statement_identifier "LAB_0030ec48") (: ":") (expression_statement "uVar8 = 0x5c;" (assignment_expression "uVar8 = 0x5c" (identifier "uVar8") (= "=") (number_literal "0x5c")) (; ";"))) (expression_statement "puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);" (assignment_expression "puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x9b8")) () ")")))) (; ";")) (expression_statement "puVar13 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar13") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4)" (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 "(puVar5,0x5c,puVar10 + -0x71c4)" (( "(") (identifier "puVar5") (, ",") (number_literal "0x5c") (, ",") (binary_expression "puVar10 + -0x71c4" (identifier "puVar10") (+ "+") (number_literal "-0x71c4")) () ")"))) (; ";")) (if_statement "if (uVar8 == 1) {\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }\n      else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" (if "if") (parenthesized_expression "(uVar8 == 1)" (( "(") (binary_expression "uVar8 == 1" (identifier "uVar8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        puVar2 = puVar5 + 6;\n        puVar5[6] = 0;\n      }" ({ "{") (expression_statement "puVar2 = puVar5 + 6;" (assignment_expression "puVar2 = puVar5 + 6" (identifier "puVar2") (= "=") (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" (else "else") (compound_statement "{\n        puVar2 = (undefined4 *)FUN_0030c980(uVar8);\n      }" ({ "{") (expression_statement "puVar2 = (undefined4 *)FUN_0030c980(uVar8);" (assignment_expression "puVar2 = (undefined4 *)FUN_0030c980(uVar8)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)FUN_0030c980(uVar8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0030c980(uVar8)" (identifier "FUN_0030c980") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar3 = (int *)puVar5[2];" (assignment_expression "piVar3 = (int *)puVar5[2]" (identifier "piVar3") (= "=") (cast_expression "(int *)puVar5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar3 != (int *)0x0) {\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }" (if "if") (parenthesized_expression "(piVar3 != (int *)0x0)" (( "(") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar11 = 0;\n        do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);\n      }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        } while (piVar12 != (int *)0x0);" (do "do") (compound_statement "{\n          while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }\n          *piVar3 = puVar5[2];\n          puVar5[2] = piVar3;\n          *puVar6 = puVar5 + 2;\n          if (*piVar3 == 0) goto LAB_0030ecdc;\n          puVar2[uVar11] = piVar3;\n          piVar3 = piVar12;\n          uVar11 = uVar14;\n        }" ({ "{") (while_statement "while( true ) {\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            if (uVar8 == 0) {\n              trap(7);\n            }\n            uVar14 = (uint)piVar3[6] % uVar8;\n            puVar6 = puVar2 + uVar14;\n            piVar12 = (int *)*piVar3;\n            if ((int *)*puVar6 == (int *)0x0) break;\n            *piVar3 = *(int *)*puVar6;\n            *(int **)*puVar6 = piVar3;\n            uVar14 = uVar11;\nLAB_0030ecdc:\n            piVar3 = piVar12;\n            uVar11 = uVar14;\n            if (piVar12 == (int *)0x0) goto LAB_0030ed38;\n          }" ({ "{") (if_statement "if (uVar8 == 0) {\n              trap(7);\n            }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              trap(7);\n            }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar14 = (uint)piVar3[6] % uVar8;" (assignment_expression "uVar14 = (uint)piVar3[6] % uVar8" (identifier "uVar14") (= "=") (binary_expression "(uint)piVar3[6] % uVar8" (cast_expression "(uint)piVar3[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[6]" (identifier "piVar3") ([ "[") (number_literal "6") (] "]"))) (% "%") (identifier "uVar8"))) (; ";")) (expression_statement "puVar6 = puVar2 + uVar14;" (assignment_expression "puVar6 = puVar2 + uVar14" (identifier "puVar6") (= "=") (binary_expression "puVar2 + uVar14" (identifier "puVar2") (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "piVar12 = (int *)*piVar3;" (assignment_expression "piVar12 = (int *)*piVar3" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) (; ";")) (if_statement "if ((int *)*puVar6 == (int *)0x0) break;" (if "if") (parenthesized_expression "((int *)*puVar6 == (int *)0x0)" (( "(") (binary_expression "(int *)*puVar6 == (int *)0x0" (cast_expression "(int *)*puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*piVar3 = *(int *)*puVar6;" (assignment_expression "*piVar3 = *(int *)*puVar6" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (pointer_expression "*(int *)*puVar6" (* "*") (cast_expression "(int *)*puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))))) (; ";")) (expression_statement "*(int **)*puVar6 = piVar3;" (assignment_expression "*(int **)*puVar6 = piVar3" (pointer_expression "*(int **)*puVar6" (* "*") (cast_expression "(int **)*puVar6" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "uVar14 = uVar11;" (assignment_expression "uVar14 = uVar11" (identifier "uVar14") (= "=") (identifier "uVar11")) (; ";")) (labeled_statement "LAB_0030ecdc:\n            piVar3 = piVar12;" (statement_identifier "LAB_0030ecdc") (: ":") (expression_statement "piVar3 = piVar12;" (assignment_expression "piVar3 = piVar12" (identifier "piVar3") (= "=") (identifier "piVar12")) (; ";"))) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" (identifier "uVar11") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (piVar12 == (int *)0x0) goto LAB_0030ed38;" (if "if") (parenthesized_expression "(piVar12 == (int *)0x0)" (( "(") (binary_expression "piVar12 == (int *)0x0" (identifier "piVar12") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0030ed38;" (goto "goto") (statement_identifier "LAB_0030ed38") (; ";"))) (} "}"))) (expression_statement "*piVar3 = puVar5[2];" (assignment_expression "*piVar3 = puVar5[2]" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar5[2] = piVar3;" (assignment_expression "puVar5[2] = piVar3" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "*puVar6 = puVar5 + 2;" (assignment_expression "*puVar6 = puVar5 + 2" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (binary_expression "puVar5 + 2" (identifier "puVar5") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (*piVar3 == 0) goto LAB_0030ecdc;" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0030ecdc;" (goto "goto") (statement_identifier "LAB_0030ecdc") (; ";"))) (expression_statement "puVar2[uVar11] = piVar3;" (assignment_expression "puVar2[uVar11] = piVar3" (subscript_expression "puVar2[uVar11]" (identifier "puVar2") ([ "[") (identifier "uVar11") (] "]")) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "piVar3 = piVar12;" (assignment_expression "piVar3 = piVar12" (identifier "piVar3") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" (identifier "uVar11") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0030ed38:\n      if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" (statement_identifier "LAB_0030ed38") (: ":") (if_statement "if (puVar5 + 6 != (undefined4 *)*puVar5) {\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" (if "if") (parenthesized_expression "(puVar5 + 6 != (undefined4 *)*puVar5)" (( "(") (binary_expression "puVar5 + 6 != (undefined4 *)*puVar5" (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6")) (!= "!=") (cast_expression "(undefined4 *)*puVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) () ")")) (compound_statement "{\n        (**(code **)(puVar13 + 0x1b269c))();\n      }" ({ "{") (expression_statement "(**(code **)(puVar13 + 0x1b269c))();" (call_expression "(**(code **)(puVar13 + 0x1b269c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1b269c))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1b269c)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1b269c)" (* "*") (cast_expression "(code **)(puVar13 + 0x1b269c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1b269c)" (( "(") (binary_expression "puVar13 + 0x1b269c" (identifier "puVar13") (+ "+") (number_literal "0x1b269c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar5[1] = uVar8;" (assignment_expression "puVar5[1] = uVar8" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*puVar5 = puVar2;" (assignment_expression "*puVar5 = puVar2" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "puVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')\n    goto LAB_0030eb34;" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195" (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")) () ")")))) (+ "+") (number_literal "0x3195")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0030eb34;" (goto "goto") (statement_identifier "LAB_0030eb34") (; ";"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: void override_with_special<64>(Symbol_table * this, Sized_symbol<64> *
   tosym, Sized_symbol<64> * fromsym) */

void __thiscall
gold::type_1::function_1<64>
          (type_1 *this,type_2<64> *var_8,type_2<64> *fromsym)

{
  type_3 SVar1;
  int var_5;
  type_2<64> *var_9;
  type_4 *var_19;
  type_5 *var_17;
  type_6 uVar5;
  type_6 *var_15;
  type_4 *pp_Var7;
  type_7 *sym;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::var_1,_gold::Symbol_location_hash,_std::equal_to<gold::var_1>,_std::allocator<gold::var_1>var_2>var_2>,var_3>var_2>var_2>
  *var_14;
  type_6 uVar8;
  type_8 *var_13;
  type_9 var_10;
  type_5 *var_21;
  type_8 *var_22;
  type_9 var_20;
  type_2<64> *local_30;
  
  Symbol::var_4(&var_8->super_Symbol,&fromsym->super_Symbol);
  var_5 = *(int *)&(var_8->super_Symbol).field_0x28;
  uVar8 = *(type_6 *)&fromsym->value_;
  SVar1 = fromsym->symsize_;
  uVar5 = *(type_6 *)&fromsym->symsize_;
  *(int *)((int)&var_8->value_ + 4) = (int)fromsym->value_;
  *(type_6 *)&var_8->value_ = uVar8;
  *(int *)((int)&var_8->symsize_ + 4) = (int)SVar1;
  *(type_6 *)&var_8->symsize_ = uVar5;
  var_13 = PTR_operator___004c4ab4;
  if (var_5 << 0x15 < 0) {
    local_30 = var_8;
    var_15 = (type_6 *)
             (*(type_10 *)PTR_operator___004c4ab4)(&this->weak_aliases_,(type_7 *)&local_30);
    uVar5 = 0x457;
    if ((type_1 *)*var_15 == (type_1 *)0x0) {
LAB_0030ec30:
      var_13 = var_6 + -0x7304;
      (*(type_10 *)PTR_do_gold_unreachable_004c1a30)(var_6 + -0x7758,uVar5,var_13);
      goto LAB_0030ec48;
    }
    var_9 = var_7<64>((type_1 *)*var_15,(type_7 *)0x457);
    do {
      Symbol::var_4(&var_9->super_Symbol,&fromsym->super_Symbol);
      uVar8 = *(type_6 *)&fromsym->value_;
      SVar1 = fromsym->symsize_;
      uVar5 = *(type_6 *)&fromsym->symsize_;
      *(int *)((int)&var_9->value_ + 4) = (int)fromsym->value_;
      *(type_6 *)&var_9->value_ = uVar8;
      *(int *)((int)&var_9->symsize_ + 4) = (int)SVar1;
      *(type_6 *)&var_9->symsize_ = uVar5;
      sym = (type_7 *)&local_30;
      local_30 = var_9;
      var_15 = (type_6 *)(*(type_10 *)var_13)(&this->weak_aliases_);
      if ((type_1 *)*var_15 == (type_1 *)0x0) {
        uVar5 = 0x45d;
        goto LAB_0030ec30;
      }
      var_9 = var_7<64>((type_1 *)*var_15,sym);
    } while (var_8 != var_9);
    var_5 = *(int *)&(var_8->super_Symbol).field_0x28;
  }
  var_10 = (type_9)(var_5 << 4) >> 0x1c;
  if (var_10 == 0) {
LAB_0030eb34:
    (*(type_10 *)PTR_force_local_004c4a24)(this,var_8);
    return;
  }
  if (((((type_9)(var_5 << 8) >> 0x1e) + 3 & 3) < 2) && (((var_10 + 0xf & 0xf) < 2 || (var_10 == 10)))
     ) {
    var_13 = var_6;
    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
LAB_0030ec48:
      var_14 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::var_1,_gold::Symbol_location_hash,_std::equal_to<gold::var_1>,_std::allocator<gold::var_1>var_2>var_2>,var_3>var_2>var_2>
                 *)&var_11;
      var_15 = (type_6 *)(var_12 + -0x9b8);
      var_22 = PTR_do_gold_unreachable_004c1a30;
      (*(type_10 *)PTR_do_gold_unreachable_004c1a30)(var_15,0x5c,var_13 + -0x71c4);
      if (var_14 ==
          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::var_1,_gold::Symbol_location_hash,_std::equal_to<gold::var_1>,_std::allocator<gold::var_1>var_2>var_2>,var_3>var_2>var_2>
           *)0x1) {
        var_19 = (type_4 *)(var_15 + 6);
        var_15[6] = 0;
      }
      else {
        var_19 = std::__detail::
                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::var_1,_gold::Symbol_location_hash,_std::equal_to<gold::var_1>,_std::allocator<gold::var_1>var_2>var_2>,var_3>var_2>var_2>
                  ::var_16(var_14,(size_t)var_14);
      }
      var_17 = (type_5 *)var_15[2];
      var_15[2] = 0;
      if (var_17 != (type_5 *)0x0) {
        var_10 = 0;
        do {
          while( true ) {
            if (var_14 ==
                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<char_const*_const,_std::unordered_set<gold::var_1,_gold::Symbol_location_hash,_std::equal_to<gold::var_1>,_std::allocator<gold::var_1>var_2>var_2>,var_3>var_2>var_2>
                 *)0x0) {
              var_18(7);
            }
            var_20 = (type_9)var_17[6]._M_nxt % (type_9)var_14;
            pp_Var7 = var_19 + var_20;
            var_21 = var_17->_M_nxt;
            if (*pp_Var7 == (type_4)0x0) break;
            var_17->_M_nxt = (*pp_Var7)->_M_nxt;
            (*pp_Var7)->_M_nxt = var_17;
            var_20 = var_10;
LAB_0030ecdc:
            var_17 = var_21;
            var_10 = var_20;
            if (var_21 == (type_5 *)0x0) goto LAB_0030ed38;
          }
          var_17->_M_nxt = (type_5 *)var_15[2];
          var_15[2] = var_17;
          *pp_Var7 = (type_4)(var_15 + 2);
          if (var_17->_M_nxt == (type_5 *)0x0) goto LAB_0030ecdc;
          var_19[var_10] = var_17;
          var_17 = var_21;
          var_10 = var_20;
        } while (var_21 != (type_5 *)0x0);
      }
LAB_0030ed38:
      if (var_15 + 6 != (type_6 *)*var_15) {
        (**(type_10 **)(var_22 + 0x1b269c))();
      }
      var_15[1] = var_14;
      *var_15 = var_19;
      return;
    }
    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')
    goto LAB_0030eb34;
  }
  return;
}


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

/* void gold::Symbol_table::MASKED(gold::Sized_symbol<64>*,
   gold::Sized_symbol<64> const*) */

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

{
  int iVar1;
  Symbol *this_00;
  undefined4 *puVar2;
  int *piVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  uint uVar8;
  undefined4 uVar9;
  undefined *puVar10;
  uint uVar11;
  int *piVar12;
  undefined *puVar13;
  uint uVar14;
  Sized_symbol *local_30 [2];
  
  Symbol::override_base_with_special((Symbol *)param_1,(Symbol *)param_2);
  iVar1 = *(int *)(param_1 + 0x28);
  uVar9 = *(undefined4 *)(param_2 + 0x30);
  uVar7 = *(undefined4 *)(param_2 + 0x3c);
  uVar4 = *(undefined4 *)(param_2 + 0x38);
  *(undefined4 *)(param_1 + 0x34) = *(undefined4 *)(param_2 + 0x34);
  *(undefined4 *)(param_1 + 0x30) = uVar9;
  *(undefined4 *)(param_1 + 0x3c) = uVar7;
  *(undefined4 *)(param_1 + 0x38) = uVar4;
  puVar10 = PTR_operator___004c4ab4;
  if (iVar1 << 0x15 < 0) {
    local_30[0] = param_1;
    piVar3 = (int *)(*(code *)PTR_operator___004c4ab4)(this + 0xb4,local_30);
    uVar4 = 0x457;
    if (*piVar3 == 0) {
LAB_0030ec30:
      puVar10 = PTR_UINT_004c12dc + -0x7304;
      (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_UINT_004c12dc + -0x7758,uVar4,puVar10);
      goto LAB_0030ec48;
    }
    this_00 = (Symbol *)FUN_0030c900(*piVar3,0x457);
    do {
      Symbol::override_base_with_special(this_00,(Symbol *)param_2);
      uVar9 = *(undefined4 *)(param_2 + 0x30);
      uVar7 = *(undefined4 *)(param_2 + 0x3c);
      uVar4 = *(undefined4 *)(param_2 + 0x38);
      *(undefined4 *)(this_00 + 0x34) = *(undefined4 *)(param_2 + 0x34);
      *(undefined4 *)(this_00 + 0x30) = uVar9;
      *(undefined4 *)(this_00 + 0x3c) = uVar7;
      *(undefined4 *)(this_00 + 0x38) = uVar4;
      local_30[0] = (Sized_symbol *)this_00;
      piVar3 = (int *)(*(code *)puVar10)(this + 0xb4,local_30);
      if (*piVar3 == 0) {
        uVar4 = 0x45d;
        goto LAB_0030ec30;
      }
      this_00 = (Symbol *)FUN_0030c900();
    } while (param_1 != (Sized_symbol *)this_00);
    iVar1 = *(int *)(param_1 + 0x28);
  }
  uVar8 = (uint)(iVar1 << 4) >> 0x1c;
  if (uVar8 == 0) {
LAB_0030eb34:
    (*(code *)PTR_force_local_004c4a24)(this,param_1);
    return;
  }
  if (((((uint)(iVar1 << 8) >> 0x1e) + 3 & 3) < 2) && (((uVar8 + 0xf & 0xf) < 2 || (uVar8 == 10))))
  {
    puVar10 = PTR_UINT_004c12dc;
    if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
LAB_0030ec48:
      uVar8 = 0x5c;
      puVar5 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);
      puVar13 = PTR_do_gold_unreachable_004c1a30;
      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar5,0x5c,puVar10 + -0x71c4);
      if (uVar8 == 1) {
        puVar2 = puVar5 + 6;
        puVar5[6] = 0;
      }
      else {
        puVar2 = (undefined4 *)FUN_0030c980(uVar8);
      }
      piVar3 = (int *)puVar5[2];
      puVar5[2] = 0;
      if (piVar3 != (int *)0x0) {
        uVar11 = 0;
        do {
          while( true ) {
            if (uVar8 == 0) {
              trap(7);
            }
            uVar14 = (uint)piVar3[6] % uVar8;
            puVar6 = puVar2 + uVar14;
            piVar12 = (int *)*piVar3;
            if ((int *)*puVar6 == (int *)0x0) break;
            *piVar3 = *(int *)*puVar6;
            *(int **)*puVar6 = piVar3;
            uVar14 = uVar11;
LAB_0030ecdc:
            piVar3 = piVar12;
            uVar11 = uVar14;
            if (piVar12 == (int *)0x0) goto LAB_0030ed38;
          }
          *piVar3 = puVar5[2];
          puVar5[2] = piVar3;
          *puVar6 = puVar5 + 2;
          if (*piVar3 == 0) goto LAB_0030ecdc;
          puVar2[uVar11] = piVar3;
          piVar3 = piVar12;
          uVar11 = uVar14;
        } while (piVar12 != (int *)0x0);
      }
LAB_0030ed38:
      if (puVar5 + 6 != (undefined4 *)*puVar5) {
        (**(code **)(puVar13 + 0x1b269c))();
      }
      puVar5[1] = uVar8;
      *puVar5 = puVar2;
      return;
    }
    if (*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x3195) == '\0')
    goto LAB_0030eb34;
  }
  return;
}

