
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void do_write(Output_data_got<32,_false> * this, Output_file * of) */

void __thiscall
gold::Output_data_got<32,_false>::do_write(Output_data_got<32,_false> *this,Output_file *of)

{
  int iVar1;
  int *piVar2;
  pointer pGVar3;
  Output_file *this_00;
  pointer pGVar4;
  int *piVar5;
  Output_file *this_1;
  uint __n;
  uint uVar6;
  uchar *puVar7;
  uchar *__buf;
  uint uVar8;
  uint uVar9;
  code *pcVar10;
  int iVar11;
  int iVar12;
  undefined4 in_stack_ffffffdc;
  
  iVar11 = 0x4c9240;
  iVar1 = *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.
                   super_Output_section_data.super_Output_data.field_0x20;
  iVar12 = 0x4c9240;
  if (iVar1 << 2 < 0) {
    this_1 = *(Output_file **)
              &(this->super_Output_data_got_base).super_Output_section_data_build.
               super_Output_section_data.super_Output_data.offset_;
    this_00 = *(Output_file **)
               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
                      super_Output_section_data.super_Output_data.offset_ + 4);
    if (iVar1 << 1 < 0) {
      uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.
                        super_Output_section_data.super_Output_data.data_size_;
      uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.
                    super_Output_section_data.super_Output_data.data_size_;
      if (-1 < (int)this_1) {
        __n = (int)&this_00->name_ + uVar8;
        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);
        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);
        if (this_1 == (Output_file *)0x0) {
          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;
          do {
            puVar7 = of->base_;
            pGVar3 = (this->entries_).
                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
                     ._M_impl._M_start;
            if (pGVar3 == (this->entries_).
                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
                          ._M_impl._M_finish) {
              uVar8 = uVar9 | uVar8;
              if (uVar8 == 0) {
                return;
              }
              iVar1 = *(int *)(iVar11 + -0x7924);
            }
            else {
              uVar6 = 0;
              __buf = puVar7 + (int)this_00;
              iVar11 = iVar12;
              do {
                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);
                uVar6 = uVar6 + 1;
                pGVar3 = (this->entries_).
                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
                         ._M_impl._M_start;
                __buf = __buf + 4;
                pGVar4 = (this->entries_).
                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
                         ._M_impl._M_finish;
              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));
              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);
              iVar1 = *(int *)(iVar11 + -0x7924);
              iVar12 = iVar11;
              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {
                if (pGVar3 != pGVar4) {
                  (this->entries_).
                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
                  ._M_impl._M_finish = pGVar3;
                }
                return;
              }
            }
            of = (Output_file *)&DAT_000006d9;
            this_1 = (Output_file *)(iVar1 - 0x429c);
            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);
            (**(code **)(iVar11 + -0x7810))();
LAB_0022dafc:
            __n = (uint)((uint)of->file_size_ < __n);
          } while (__n == 0);
        }
      }
      Output_file::get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);
    }
    (**(code **)(iVar11 + -0x7810))
              (*(int *)(iVar11 + -0x7fc4) + 0x3574,0xcf,*(int *)(iVar11 + -0x7924) + -0x29fc);
  }
  pcVar10 = *(code **)(iVar11 + -0x7810);
  piVar5 = (int *)(*(int *)(iVar11 + -0x7fc4) + 0x3574);
  (*pcVar10)(piVar5,0xe3,*(int *)(iVar11 + -0x7924) + -0x2a78);
  piVar5[9] = 0;
  piVar5[0xc] = 0;
  piVar5[3] = 0;
  piVar5[5] = 0;
  piVar5[0x17] = 0;
  piVar5[0x19] = 0;
  piVar5[2] = 0;
  piVar5[4] = 0;
  piVar5[0x16] = 0;
  *(byte *)(piVar5 + 8) = *(byte *)(piVar5 + 8) & 7;
  piVar5[0x18] = 0;
  piVar2 = piVar5 + 0x10;
  piVar5[7] = -1;
  piVar5[6] = -1;
  iVar11 = *(int *)(pcVar10 + 0x293fa8);
  piVar5[0xb] = 4;
  piVar5[10] = 0;
  piVar5[0xd] = 0;
  piVar5[0xe] = 0;
  *piVar5 = iVar11 + 8;
  piVar5[0x11] = (int)piVar2;
  piVar5[0x10] = (int)piVar2;
  piVar5[0x12] = 0;
  piVar5[0x13] = (int)piVar2;
  *(undefined1 *)(piVar5 + 0x14) = 0;
  return;
}



/* gold::Output_data_got<32, false>::do_write(gold::Output_file*) */

void __thiscall
gold::Output_data_got<32,false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)

{
  int iVar1;
  uint uVar2;
  uchar *puVar3;
  uint uVar4;
  int iVar5;
  uchar *puVar6;
  
  if (-1 < *(int *)(this + 0x20) << 2) {
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
               PTR_s_in_a_linker_script_004c191c + -0x2a78);
    return;
  }
  if (*(int *)(this + 0x20) << 1 < 0) {
    iVar5 = *(int *)(this + 0x10);
    uVar4 = *(uint *)(this + 0x14);
    if (-1 < *(int *)(this + 0x18)) {
      uVar2 = uVar4 + *(int *)(this + 0x1c);
      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);
      if ((iVar1 <= *(int *)(param_1 + 8)) &&
         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {
        iVar1 = *(int *)(this + 0x30);
        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));
        if (iVar1 == *(int *)(this + 0x34)) {
          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;
        }
        else {
          uVar2 = 0;
          puVar3 = puVar6;
          do {
            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);
            uVar2 = uVar2 + 1;
            iVar1 = *(int *)(this + 0x30);
            puVar3 = puVar3 + 4;
          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));
          uVar2 = (int)puVar3 - (int)puVar6;
          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {
LAB_0022dae4:
            (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,
                       PTR_s_in_a_linker_script_004c191c + -0x429c);
            return;
          }
          if (iVar1 != *(int *)(this + 0x34)) {
            *(int *)(this + 0x34) = iVar1;
          }
        }
        return;
      }
    }
    FUN_00212d10();
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
             PTR_s_in_a_linker_script_004c191c + -0x29fc);
  return;
}


lui gp,0x2a
addiu gp,gp,-0x4768
addu gp,gp,t9
lw v0,0x20(a0)
addiu sp,sp,-0x38
ext v1,v0,0x1d,0x1
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
beq v1,zero,0x0022db38
_sw s0,0x18(sp)
ext v0,v0,0x1e,0x1
lw a2,0x18(a0)
or s6,a0,zero
beq v0,zero,0x0022db1c
_lw a0,0x1c(a0)
lw s4,0x10(s6)
bltz a2,0x0022db0c
_lw s3,0x14(s6)
addu a3,s3,a0
lw v1,0x8(a1)
sltu v0,a3,s3
addu v0,v0,a2
slt a2,v1,v0
bne a2,zero,0x0022db10
_lw t9,-0x533c(gp)
beq v1,v0,0x0022dafc
_nop
lw s1,0x10(a1)
lw v1,0x30(s6)
lw v0,0x34(s6)
beq v1,v0,0x0022dad4
_addu s5,s1,a0
lw s2,-0x5070(gp)
or s0,zero,zero
or s1,s5,zero
sll a0,s0,0x4
or a2,s1,zero
addu a0,v1,a0
or t9,s2,zero
bal 0x0022d70c
_or a1,s0,zero
addiu s0,s0,0x1
lw v1,0x30(s6)
addiu s1,s1,0x4
lw a0,0x34(s6)
subu v0,a0,v1
sra v0,v0,0x4
sltu v0,s0,v0
bne v0,zero,0x0022da4c
_lw gp,0x10(sp)
subu s1,s1,s5
sra v0,s1,0x1f
bne s4,v0,0x0022dae4
_lw a2,-0x7924(gp)
bne s3,s1,0x0022dae4
_nop
beq v1,a0,0x0022dab0
_lw ra,0x34(sp)
sw v1,0x34(s6)
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
or s3,s4,s3
beq s3,zero,0x0022dab0
_lw ra,0x34(sp)
lw a2,-0x7924(gp)
li a1,0x6d9
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x429c
jalr t9
_addiu a0,a0,-0x48b4
lw v0,0xc(a1)
sltu a3,v0,a3
beq a3,zero,0x0022da2c
_nop
lw t9,-0x533c(gp)
addiu t9,t9,0x2d10
bal 0x00212d10
_nop
lw a2,-0x7924(gp)
li a1,0xcf
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x29fc
jalr t9
_addiu a0,a0,0x3574
lw a2,-0x7924(gp)
li a1,0xe3
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2a78
jalr t9
_addiu a0,a0,0x3574
(translation_unit "/* gold::Output_data_got<32, false>::do_write(gold::Output_file*) */\n\nvoid __thiscall\ngold::Output_data_got<32,false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  uchar *puVar3;\n  uint uVar4;\n  int iVar5;\n  uchar *puVar6;\n  \n  if (-1 < *(int *)(this + 0x20) << 2) {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }\n  if (*(int *)(this + 0x20) << 1 < 0) {\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc);\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Output_data_got<32,false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int" identifier > : : (function_declarator "do_write(Output_data_got<32,false> *this,Output_file *param_1)" identifier (parameter_list "(Output_data_got<32,false> *this,Output_file *param_1)" ( (parameter_declaration "Output_data_got" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { primitive_type) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (if_statement "if (-1 < *(int *)(this + 0x20) << 2) {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(this + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(this + 0x20) << 2" number_literal < (binary_expression "*(int *)(this + 0x20) << 2" (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a78" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(this + 0x20) << 1 < 0) {\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" if (parenthesized_expression "(*(int *)(this + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(this + 0x20) << 1 < 0" (binary_expression "*(int *)(this + 0x20) << 1" (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" { (expression_statement "iVar5 = *(int *)(this + 0x10);" (assignment_expression "iVar5 = *(int *)(this + 0x10)" identifier = (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(this + 0x14);" (assignment_expression "uVar4 = *(uint *)(this + 0x14)" identifier = (pointer_expression "*(uint *)(this + 0x14)" * (cast_expression "(uint *)(this + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(-1 < *(int *)(this + 0x18))" ( (binary_expression "-1 < *(int *)(this + 0x18)" number_literal < (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }" { (expression_statement "uVar2 = uVar4 + *(int *)(this + 0x1c);" (assignment_expression "uVar2 = uVar4 + *(int *)(this + 0x1c)" identifier = (binary_expression "uVar4 + *(int *)(this + 0x1c)" identifier + (pointer_expression "*(int *)(this + 0x1c)" * (cast_expression "(int *)(this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);" (assignment_expression "iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18)" identifier = (binary_expression "(uint)(uVar2 < uVar4) + *(int *)(this + 0x18)" (call_expression "(uint)(uVar2 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar4)" ( (binary_expression "uVar2 < uVar4" identifier < identifier) ))) + (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }" if (parenthesized_expression "((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc)))))" ( (binary_expression "(iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))" (parenthesized_expression "(iVar1 <= *(int *)(param_1 + 8))" ( (binary_expression "iVar1 <= *(int *)(param_1 + 8)" identifier <= (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))" ( (parenthesized_expression "(*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc)))" ( (binary_expression "*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))" (binary_expression "*(int *)(param_1 + 8) != iVar1" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(uVar2 <= *(uint *)(param_1 + 0xc))" ( (binary_expression "uVar2 <= *(uint *)(param_1 + 0xc)" identifier <= (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }" { (expression_statement "iVar1 = *(int *)(this + 0x30);" (assignment_expression "iVar1 = *(int *)(this + 0x30)" identifier = (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));" (assignment_expression "puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" identifier = (cast_expression "(uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" ( (binary_expression "*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c)" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0x1c)" * (cast_expression "(int *)(this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" if (parenthesized_expression "(iVar1 == *(int *)(this + 0x34))" ( (binary_expression "iVar1 == *(int *)(this + 0x34)" identifier == (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }" { (if_statement "if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;" if (parenthesized_expression "(iVar5 != 0 || uVar4 != 0)" ( (binary_expression "iVar5 != 0 || uVar4 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "uVar4 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0022dae4;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" else (compound_statement "{\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = puVar6;" (assignment_expression "puVar3 = puVar6" identifier = identifier) ;) (do_statement "do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));" do (compound_statement "{\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          }" { (labeled_statement "Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);" statement_identifier : (ERROR ":" :) (expression_statement "write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);" (call_expression "write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3)" identifier (argument_list "((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3)" ( (cast_expression "(Got_entry *)(iVar1 + uVar2 * 0x10)" ( (type_descriptor "Got_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + uVar2 * 0x10)" ( (binary_expression "iVar1 + uVar2 * 0x10" identifier + (binary_expression "uVar2 * 0x10" identifier * number_literal)) ))) , identifier , identifier ))) ;)) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *(int *)(this + 0x30);" (assignment_expression "iVar1 = *(int *)(this + 0x30)" identifier = (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4))" ( (binary_expression "uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4)" identifier < (call_expression "(uint)(*(int *)(this + 0x34) - iVar1 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 0x34) - iVar1 >> 4)" ( (binary_expression "*(int *)(this + 0x34) - iVar1 >> 4" (binary_expression "*(int *)(this + 0x34) - iVar1" (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) ;) (expression_statement "uVar2 = (int)puVar3 - (int)puVar6;" (assignment_expression "uVar2 = (int)puVar3 - (int)puVar6" identifier = (binary_expression "(int)puVar3 - (int)puVar6" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }" if (parenthesized_expression "((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2))" ( (binary_expression "(iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)" (parenthesized_expression "(iVar5 != (int)uVar2 >> 0x1f)" ( (binary_expression "iVar5 != (int)uVar2 >> 0x1f" identifier != (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) || (parenthesized_expression "(uVar4 != uVar2)" ( (binary_expression "uVar4 != uVar2" identifier != identifier) ))) )) (compound_statement "{\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }" { (labeled_statement "LAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x429c" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }" if (parenthesized_expression "(iVar1 != *(int *)(this + 0x34))" ( (binary_expression "iVar1 != *(int *)(this + 0x34)" identifier != (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n            *(int *)(this + 0x34) = iVar1;\n          }" { (expression_statement "*(int *)(this + 0x34) = iVar1;" (assignment_expression "*(int *)(this + 0x34) = iVar1" (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) = identifier) ;) })) }))) (return_statement "return;" return ;) })) })) (expression_statement "FUN_00212d10();" (call_expression "FUN_00212d10()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: void do_write(Output_data_got<32,_false> * this, Output_file * of) */\n\nvoid __thiscall\ngold::Output_data_got<32,_false>::do_write(Output_data_got<32,_false> *this,Output_file *of)\n\n{\n  int iVar1;\n  int *piVar2;\n  pointer pGVar3;\n  Output_file *this_00;\n  pointer pGVar4;\n  int *piVar5;\n  Output_file *this_1;\n  uint __n;\n  uint uVar6;\n  uchar *puVar7;\n  uchar *__buf;\n  uint uVar8;\n  uint uVar9;\n  code *pcVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 in_stack_ffffffdc;\n  \n  iVar11 = 0x4c9240;\n  iVar1 = *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20;\n  iVar12 = 0x4c9240;\n  if (iVar1 << 2 < 0) {\n    this_1 = *(Output_file **)\n              &(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_;\n    this_00 = *(Output_file **)\n               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4);\n    if (iVar1 << 1 < 0) {\n      uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_;\n      uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_;\n      if (-1 < (int)this_1) {\n        __n = (int)&this_00->name_ + uVar8;\n        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);\n        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);\n        if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }\n      }\n      Output_file::get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);\n    }\n    (**(code **)(iVar11 + -0x7810))\n              (*(int *)(iVar11 + -0x7fc4) + 0x3574,0xcf,*(int *)(iVar11 + -0x7924) + -0x29fc);\n  }\n  pcVar10 = *(code **)(iVar11 + -0x7810);\n  piVar5 = (int *)(*(int *)(iVar11 + -0x7fc4) + 0x3574);\n  (*pcVar10)(piVar5,0xe3,*(int *)(iVar11 + -0x7924) + -0x2a78);\n  piVar5[9] = 0;\n  piVar5[0xc] = 0;\n  piVar5[3] = 0;\n  piVar5[5] = 0;\n  piVar5[0x17] = 0;\n  piVar5[0x19] = 0;\n  piVar5[2] = 0;\n  piVar5[4] = 0;\n  piVar5[0x16] = 0;\n  *(byte *)(piVar5 + 8) = *(byte *)(piVar5 + 8) & 7;\n  piVar5[0x18] = 0;\n  piVar2 = piVar5 + 0x10;\n  piVar5[7] = -1;\n  piVar5[6] = -1;\n  iVar11 = *(int *)(pcVar10 + 0x293fa8);\n  piVar5[0xb] = 4;\n  piVar5[10] = 0;\n  piVar5[0xd] = 0;\n  piVar5[0xe] = 0;\n  *piVar5 = iVar11 + 8;\n  piVar5[0x11] = (int)piVar2;\n  piVar5[0x10] = (int)piVar2;\n  piVar5[0x12] = 0;\n  piVar5[0x13] = (int)piVar2;\n  *(undefined1 *)(piVar5 + 0x14) = 0;\n  return;\n}\n\n" comment comment comment comment comment comment comment (declaration "void __thiscall\ngold::Output_data_got<32,_false>::do_write(Output_data_got<32,_false> *this,Output_file *of)\n\n{\n  int iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::do_write(Output_data_got<32,_false> *this,Output_file *of)\n\n{\n  int" identifier > : : (function_declarator "do_write(Output_data_got<32,_false> *this,Output_file *of)" identifier (parameter_list "(Output_data_got<32,_false> *this,Output_file *of)" ( (parameter_declaration "Output_data_got" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { primitive_type) identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "pointer pGVar3;" type_identifier identifier ;) (declaration "Output_file *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "pointer pGVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "Output_file *this_1;" type_identifier (pointer_declarator "*this_1" * identifier) ;) (declaration "uint __n;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uchar *__buf;" type_identifier (pointer_declarator "*__buf" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffffdc;" type_identifier identifier ;) (expression_statement "iVar11 = 0x4c9240;" (assignment_expression "iVar11 = 0x4c9240" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20;" (assignment_expression "iVar1 = *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" identifier = (pointer_expression "*(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" * (cast_expression "(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data.field_0x20" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                   super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) (expression_statement "iVar12 = 0x4c9240;" (assignment_expression "iVar12 = 0x4c9240" identifier = number_literal) ;) (if_statement "if (iVar1 << 2 < 0) {\n    this_1 = *(Output_file **)\n              &(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_;\n    this_00 = *(Output_file **)\n               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4);\n    if (iVar1 << 1 < 0) {\n      uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_;\n      uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_;\n      if (-1 < (int)this_1) {\n        __n = (int)&this_00->name_ + uVar8;\n        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);\n        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);\n        if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }\n      }\n      Output_file::get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);\n    }\n    (**(code **)(iVar11 + -0x7810))\n              (*(int *)(iVar11 + -0x7fc4) + 0x3574,0xcf,*(int *)(iVar11 + -0x7924) + -0x29fc);\n  }" if (parenthesized_expression "(iVar1 << 2 < 0)" ( (binary_expression "iVar1 << 2 < 0" (binary_expression "iVar1 << 2" identifier << number_literal) < number_literal) )) (compound_statement "{\n    this_1 = *(Output_file **)\n              &(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_;\n    this_00 = *(Output_file **)\n               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4);\n    if (iVar1 << 1 < 0) {\n      uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_;\n      uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_;\n      if (-1 < (int)this_1) {\n        __n = (int)&this_00->name_ + uVar8;\n        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);\n        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);\n        if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }\n      }\n      Output_file::get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);\n    }\n    (**(code **)(iVar11 + -0x7810))\n              (*(int *)(iVar11 + -0x7fc4) + 0x3574,0xcf,*(int *)(iVar11 + -0x7924) + -0x29fc);\n  }" { (expression_statement "this_1 = *(Output_file **)\n              &(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_;" (assignment_expression "this_1 = *(Output_file **)\n              &(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_" identifier = (pointer_expression "*(Output_file **)\n              &(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_" * (cast_expression "(Output_file **)\n              &(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data.offset_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n               super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) (expression_statement "this_00 = *(Output_file **)\n               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4);" (assignment_expression "this_00 = *(Output_file **)\n               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4)" identifier = (pointer_expression "*(Output_file **)\n               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4)" * (cast_expression "(Output_file **)\n               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4)" ( (type_descriptor "Output_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4)" ( (binary_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_ + 4" (cast_expression "(int)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data.offset_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                      super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (iVar1 << 1 < 0) {\n      uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_;\n      uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_;\n      if (-1 < (int)this_1) {\n        __n = (int)&this_00->name_ + uVar8;\n        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);\n        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);\n        if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }\n      }\n      Output_file::get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);\n    }" if (parenthesized_expression "(iVar1 << 1 < 0)" ( (binary_expression "iVar1 << 1 < 0" (binary_expression "iVar1 << 1" identifier << number_literal) < number_literal) )) (compound_statement "{\n      uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_;\n      uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_;\n      if (-1 < (int)this_1) {\n        __n = (int)&this_00->name_ + uVar8;\n        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);\n        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);\n        if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }\n      }\n      Output_file::get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);\n    }" { (expression_statement "uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_;" (assignment_expression "uVar9 = *(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" identifier = (pointer_expression "*(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" * (cast_expression "(uint *)&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" & (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data.data_size_" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build.\n                        super_Output_section_data" (field_expression "(this->super_Output_data_got_base).super_Output_section_data_build" (parenthesized_expression "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) (expression_statement "uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_;" (assignment_expression "uVar8 = (uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_" identifier = (field_expression "(uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data.data_size_" (field_expression "(uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data.super_Output_data" (field_expression "(uint)(this->super_Output_data_got_base).super_Output_section_data_build.\n                    super_Output_section_data" (field_expression "(uint)(this->super_Output_data_got_base).super_Output_section_data_build" (call_expression "(uint)(this->super_Output_data_got_base)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_data_got_base)" ( (field_expression "this->super_Output_data_got_base" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (-1 < (int)this_1) {\n        __n = (int)&this_00->name_ + uVar8;\n        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);\n        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);\n        if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }\n      }" if (parenthesized_expression "(-1 < (int)this_1)" ( (binary_expression "-1 < (int)this_1" number_literal < (cast_expression "(int)this_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        __n = (int)&this_00->name_ + uVar8;\n        iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);\n        this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);\n        if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }\n      }" { (expression_statement "__n = (int)&this_00->name_ + uVar8;" (assignment_expression "__n = (int)&this_00->name_ + uVar8" identifier = (binary_expression "(int)&this_00->name_ + uVar8" (cast_expression "(int)&this_00->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00->name_" & (field_expression "this_00->name_" identifier -> field_identifier))) + identifier)) ;) (expression_statement "iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8);" (assignment_expression "iVar1 = (int)&this_1->name_ + (uint)(__n < uVar8)" identifier = (binary_expression "(int)&this_1->name_ + (uint)(__n < uVar8)" (cast_expression "(int)&this_1->name_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_1->name_" & (field_expression "this_1->name_" identifier -> field_identifier))) + (call_expression "(uint)(__n < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__n < uVar8)" ( (binary_expression "__n < uVar8" identifier < identifier) ))))) ;) (expression_statement "this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1);" (assignment_expression "this_1 = (Output_file *)(uint)(*(int *)&of->file_size_ < iVar1)" identifier = (cast_expression "(Output_file *)(uint)(*(int *)&of->file_size_ < iVar1)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)&of->file_size_ < iVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&of->file_size_ < iVar1)" ( (binary_expression "*(int *)&of->file_size_ < iVar1" (pointer_expression "*(int *)&of->file_size_" * (cast_expression "(int *)&of->file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) < identifier) ))))) ;) (if_statement "if (this_1 == (Output_file *)0x0) {\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }" if (parenthesized_expression "(this_1 == (Output_file *)0x0)" ( (binary_expression "this_1 == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;\n          do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);\n        }" { (if_statement "if (*(int *)&of->file_size_ == iVar1) goto LAB_0022dafc;" if (parenthesized_expression "(*(int *)&of->file_size_ == iVar1)" ( (binary_expression "*(int *)&of->file_size_ == iVar1" (pointer_expression "*(int *)&of->file_size_" * (cast_expression "(int *)&of->file_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier)))) == identifier) )) (goto_statement "goto LAB_0022dafc;" goto statement_identifier ;)) (do_statement "do {\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          } while (__n == 0);" do (compound_statement "{\n            puVar7 = of->base_;\n            pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;\n            if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }\n            of = (Output_file *)&DAT_000006d9;\n            this_1 = (Output_file *)(iVar1 - 0x429c);\n            this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);\n            (**(code **)(iVar11 + -0x7810))();\nLAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);\n          }" { (expression_statement "puVar7 = of->base_;" (assignment_expression "puVar7 = of->base_" identifier = (field_expression "of->base_" identifier -> field_identifier)) ;) (ERROR "pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::" (comma_expression "pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std" (binary_expression "pGVar3 = (this->entries_).\n                     super__Vector_base<gold::Output_data_got<32" (assignment_expression "pGVar3 = (this->entries_).\n                     super__Vector_base<gold" identifier = (binary_expression "(this->entries_).\n                     super__Vector_base<gold" (field_expression "(this->entries_).\n                     super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start;" (comma_expression "Output_data_got<32,_false>::Got_entry>_>\n                     ._M_impl._M_start" (binary_expression "Output_data_got<32" identifier < number_literal) , (field_expression "_false>::Got_entry>_>\n                     ._M_impl._M_start" (field_expression "_false>::Got_entry>_>\n                     ._M_impl" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (if_statement "if (pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish) {\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }\n            else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }" if (parenthesized_expression "(pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish)" ( (ERROR "pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::" (comma_expression "pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std" (binary_expression "pGVar3 == (this->entries_).\n                          super__Vector_base<gold::Output_data_got<32" (binary_expression "pGVar3 == (this->entries_).\n                          super__Vector_base<gold" identifier == (binary_expression "(this->entries_).\n                          super__Vector_base<gold" (field_expression "(this->entries_).\n                          super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Output_data_got<32,_false>::Got_entry>_>\n                          ._M_impl._M_finish" (binary_expression "Output_data_got<32" identifier < number_literal) , (field_expression "_false>::Got_entry>_>\n                          ._M_impl._M_finish" (field_expression "_false>::Got_entry>_>\n                          ._M_impl" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) )) (compound_statement "{\n              uVar8 = uVar9 | uVar8;\n              if (uVar8 == 0) {\n                return;\n              }\n              iVar1 = *(int *)(iVar11 + -0x7924);\n            }" { (expression_statement "uVar8 = uVar9 | uVar8;" (assignment_expression "uVar8 = uVar9 | uVar8" identifier = (binary_expression "uVar9 | uVar8" identifier | identifier)) ;) (if_statement "if (uVar8 == 0) {\n                return;\n              }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = *(int *)(iVar11 + -0x7924);" (assignment_expression "iVar1 = *(int *)(iVar11 + -0x7924)" identifier = (pointer_expression "*(int *)(iVar11 + -0x7924)" * (cast_expression "(int *)(iVar11 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7924)" ( (binary_expression "iVar11 + -0x7924" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }" else (compound_statement "{\n              uVar6 = 0;\n              __buf = puVar7 + (int)this_00;\n              iVar11 = iVar12;\n              do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));\n              uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);\n              iVar1 = *(int *)(iVar11 + -0x7924);\n              iVar12 = iVar11;\n              if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }\n            }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "__buf = puVar7 + (int)this_00;" (assignment_expression "__buf = puVar7 + (int)this_00" identifier = (binary_expression "puVar7 + (int)this_00" identifier + (cast_expression "(int)this_00" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar11 = iVar12;" (assignment_expression "iVar11 = iVar12" identifier = identifier) ;) (do_statement "do {\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              } while (uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4));" do (compound_statement "{\n                Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);\n                uVar6 = uVar6 + 1;\n                pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;\n                __buf = __buf + 4;\n                pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;\n              }" { (labeled_statement "Got_entry::write(pGVar3 + uVar6,uVar6,__buf,__n);" statement_identifier : (ERROR ":" :) (expression_statement "write(pGVar3 + uVar6,uVar6,__buf,__n);" (call_expression "write(pGVar3 + uVar6,uVar6,__buf,__n)" identifier (argument_list "(pGVar3 + uVar6,uVar6,__buf,__n)" ( (binary_expression "pGVar3 + uVar6" identifier + identifier) , identifier , identifier , identifier ))) ;)) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (ERROR "pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::" (comma_expression "pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std" (binary_expression "pGVar3 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32" (assignment_expression "pGVar3 = (this->entries_).\n                         super__Vector_base<gold" identifier = (binary_expression "(this->entries_).\n                         super__Vector_base<gold" (field_expression "(this->entries_).\n                         super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start;" (comma_expression "Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_start" (binary_expression "Output_data_got<32" identifier < number_literal) , (field_expression "_false>::Got_entry>_>\n                         ._M_impl._M_start" (field_expression "_false>::Got_entry>_>\n                         ._M_impl" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "__buf = __buf + 4;" (assignment_expression "__buf = __buf + 4" identifier = (binary_expression "__buf + 4" identifier + number_literal)) ;) (ERROR "pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::" (comma_expression "pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std" (binary_expression "pGVar4 = (this->entries_).\n                         super__Vector_base<gold::Output_data_got<32" (assignment_expression "pGVar4 = (this->entries_).\n                         super__Vector_base<gold" identifier = (binary_expression "(this->entries_).\n                         super__Vector_base<gold" (field_expression "(this->entries_).\n                         super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish;" (comma_expression "Output_data_got<32,_false>::Got_entry>_>\n                         ._M_impl._M_finish" (binary_expression "Output_data_got<32" identifier < number_literal) , (field_expression "_false>::Got_entry>_>\n                         ._M_impl._M_finish" (field_expression "_false>::Got_entry>_>\n                         ._M_impl" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4))" ( (binary_expression "uVar6 < (uint)((int)pGVar4 - (int)pGVar3 >> 4)" identifier < (call_expression "(uint)((int)pGVar4 - (int)pGVar3 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pGVar4 - (int)pGVar3 >> 4)" ( (binary_expression "(int)pGVar4 - (int)pGVar3 >> 4" (binary_expression "(int)pGVar4 - (int)pGVar3" (cast_expression "(int)pGVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pGVar3" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) ;) (expression_statement "uVar6 = (int)__buf - (int)(puVar7 + (int)this_00);" (assignment_expression "uVar6 = (int)__buf - (int)(puVar7 + (int)this_00)" identifier = (binary_expression "(int)__buf - (int)(puVar7 + (int)this_00)" (cast_expression "(int)__buf" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(puVar7 + (int)this_00)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7 + (int)this_00)" ( (binary_expression "puVar7 + (int)this_00" identifier + (cast_expression "(int)this_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "iVar1 = *(int *)(iVar11 + -0x7924);" (assignment_expression "iVar1 = *(int *)(iVar11 + -0x7924)" identifier = (pointer_expression "*(int *)(iVar11 + -0x7924)" * (cast_expression "(int *)(iVar11 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7924)" ( (binary_expression "iVar11 + -0x7924" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar11;" (assignment_expression "iVar12 = iVar11" identifier = identifier) ;) (if_statement "if ((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)) {\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }" if (parenthesized_expression "((uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6))" ( (binary_expression "(uVar9 == (int)uVar6 >> 0x1f) && (uVar8 == uVar6)" (parenthesized_expression "(uVar9 == (int)uVar6 >> 0x1f)" ( (binary_expression "uVar9 == (int)uVar6 >> 0x1f" identifier == (binary_expression "(int)uVar6 >> 0x1f" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) && (parenthesized_expression "(uVar8 == uVar6)" ( (binary_expression "uVar8 == uVar6" identifier == identifier) ))) )) (compound_statement "{\n                if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }\n                return;\n              }" { (if_statement "if (pGVar3 != pGVar4) {\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }" if (parenthesized_expression "(pGVar3 != pGVar4)" ( (binary_expression "pGVar3 != pGVar4" identifier != identifier) )) (compound_statement "{\n                  (this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;\n                }" { (ERROR "(this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::" (comma_expression "(this->entries_).\n                  super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std" (binary_expression "(this->entries_).\n                  super__Vector_base<gold::Output_data_got<32" (binary_expression "(this->entries_).\n                  super__Vector_base<gold" (field_expression "(this->entries_).\n                  super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_false>::Got_entry,_std" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3;" (comma_expression "Output_data_got<32,_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3" (binary_expression "Output_data_got<32" identifier < number_literal) , (assignment_expression "_false>::Got_entry>_>\n                  ._M_impl._M_finish = pGVar3" (field_expression "_false>::Got_entry>_>\n                  ._M_impl._M_finish" (field_expression "_false>::Got_entry>_>\n                  ._M_impl" (binary_expression "_false>::Got_entry>_" (binary_expression "_false>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)) ;) })) (return_statement "return;" return ;) })) }))) (expression_statement "of = (Output_file *)&DAT_000006d9;" (assignment_expression "of = (Output_file *)&DAT_000006d9" identifier = (cast_expression "(Output_file *)&DAT_000006d9" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000006d9" & identifier))) ;) (expression_statement "this_1 = (Output_file *)(iVar1 - 0x429c);" (assignment_expression "this_1 = (Output_file *)(iVar1 - 0x429c)" identifier = (cast_expression "(Output_file *)(iVar1 - 0x429c)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 - 0x429c)" ( (binary_expression "iVar1 - 0x429c" identifier - number_literal) )))) ;) (expression_statement "this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4);" (assignment_expression "this_00 = (Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4)" identifier = (cast_expression "(Output_file *)(*(int *)(iVar11 + -0x7924) + -0x48b4)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + -0x7924) + -0x48b4)" ( (binary_expression "*(int *)(iVar11 + -0x7924) + -0x48b4" (pointer_expression "*(int *)(iVar11 + -0x7924)" * (cast_expression "(int *)(iVar11 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7924)" ( (binary_expression "iVar11 + -0x7924" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(iVar11 + -0x7810))();" (call_expression "(**(code **)(iVar11 + -0x7810))()" (parenthesized_expression "(**(code **)(iVar11 + -0x7810))" ( (pointer_expression "**(code **)(iVar11 + -0x7810)" * (pointer_expression "*(code **)(iVar11 + -0x7810)" * (cast_expression "(code **)(iVar11 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7810)" ( (binary_expression "iVar11 + -0x7810" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0022dafc:\n            __n = (uint)((uint)of->file_size_ < __n);" statement_identifier : (expression_statement "__n = (uint)((uint)of->file_size_ < __n);" (assignment_expression "__n = (uint)((uint)of->file_size_ < __n)" identifier = (call_expression "(uint)((uint)of->file_size_ < __n)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)of->file_size_ < __n)" ( (binary_expression "(uint)of->file_size_ < __n" (cast_expression "(uint)of->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "of->file_size_" identifier -> field_identifier)) < identifier) )))) ;)) }) while (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) ;) })) })) (labeled_statement "Output_file::get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1);" (call_expression "get_output_view(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1)" identifier (argument_list "(this_00,CONCAT44(iVar12,in_stack_ffffffdc),(size_t)of,this_1)" ( identifier , (call_expression "CONCAT44(iVar12,in_stack_ffffffdc)" identifier (argument_list "(iVar12,in_stack_ffffffdc)" ( identifier , identifier ))) , (cast_expression "(size_t)of" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;)) })) (expression_statement "(**(code **)(iVar11 + -0x7810))\n              (*(int *)(iVar11 + -0x7fc4) + 0x3574,0xcf,*(int *)(iVar11 + -0x7924) + -0x29fc);" (call_expression "(**(code **)(iVar11 + -0x7810))\n              (*(int *)(iVar11 + -0x7fc4) + 0x3574,0xcf,*(int *)(iVar11 + -0x7924) + -0x29fc)" (parenthesized_expression "(**(code **)(iVar11 + -0x7810))" ( (pointer_expression "**(code **)(iVar11 + -0x7810)" * (pointer_expression "*(code **)(iVar11 + -0x7810)" * (cast_expression "(code **)(iVar11 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7810)" ( (binary_expression "iVar11 + -0x7810" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar11 + -0x7fc4) + 0x3574,0xcf,*(int *)(iVar11 + -0x7924) + -0x29fc)" ( (binary_expression "*(int *)(iVar11 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(iVar11 + -0x7fc4)" * (cast_expression "(int *)(iVar11 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7fc4)" ( (binary_expression "iVar11 + -0x7fc4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar11 + -0x7924) + -0x29fc" (pointer_expression "*(int *)(iVar11 + -0x7924)" * (cast_expression "(int *)(iVar11 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7924)" ( (binary_expression "iVar11 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pcVar10 = *(code **)(iVar11 + -0x7810);" (assignment_expression "pcVar10 = *(code **)(iVar11 + -0x7810)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7810)" * (cast_expression "(code **)(iVar11 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7810)" ( (binary_expression "iVar11 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)(*(int *)(iVar11 + -0x7fc4) + 0x3574);" (assignment_expression "piVar5 = (int *)(*(int *)(iVar11 + -0x7fc4) + 0x3574)" identifier = (cast_expression "(int *)(*(int *)(iVar11 + -0x7fc4) + 0x3574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + -0x7fc4) + 0x3574)" ( (binary_expression "*(int *)(iVar11 + -0x7fc4) + 0x3574" (pointer_expression "*(int *)(iVar11 + -0x7fc4)" * (cast_expression "(int *)(iVar11 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7fc4)" ( (binary_expression "iVar11 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar10)(piVar5,0xe3,*(int *)(iVar11 + -0x7924) + -0x2a78);" (call_expression "(*pcVar10)(piVar5,0xe3,*(int *)(iVar11 + -0x7924) + -0x2a78)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(piVar5,0xe3,*(int *)(iVar11 + -0x7924) + -0x2a78)" ( identifier , number_literal , (binary_expression "*(int *)(iVar11 + -0x7924) + -0x2a78" (pointer_expression "*(int *)(iVar11 + -0x7924)" * (cast_expression "(int *)(iVar11 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7924)" ( (binary_expression "iVar11 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "piVar5[9] = 0;" (assignment_expression "piVar5[9] = 0" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0xc] = 0;" (assignment_expression "piVar5[0xc] = 0" (subscript_expression "piVar5[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[3] = 0;" (assignment_expression "piVar5[3] = 0" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[5] = 0;" (assignment_expression "piVar5[5] = 0" (subscript_expression "piVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x17] = 0;" (assignment_expression "piVar5[0x17] = 0" (subscript_expression "piVar5[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x19] = 0;" (assignment_expression "piVar5[0x19] = 0" (subscript_expression "piVar5[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[2] = 0;" (assignment_expression "piVar5[2] = 0" (subscript_expression "piVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[4] = 0;" (assignment_expression "piVar5[4] = 0" (subscript_expression "piVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x16] = 0;" (assignment_expression "piVar5[0x16] = 0" (subscript_expression "piVar5[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(piVar5 + 8) = *(byte *)(piVar5 + 8) & 7;" (assignment_expression "*(byte *)(piVar5 + 8) = *(byte *)(piVar5 + 8) & 7" (pointer_expression "*(byte *)(piVar5 + 8)" * (cast_expression "(byte *)(piVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 8)" ( (binary_expression "piVar5 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar5 + 8) & 7" (pointer_expression "*(byte *)(piVar5 + 8)" * (cast_expression "(byte *)(piVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 8)" ( (binary_expression "piVar5 + 8" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar5[0x18] = 0;" (assignment_expression "piVar5[0x18] = 0" (subscript_expression "piVar5[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2 = piVar5 + 0x10;" (assignment_expression "piVar2 = piVar5 + 0x10" identifier = (binary_expression "piVar5 + 0x10" identifier + number_literal)) ;) (expression_statement "piVar5[7] = -1;" (assignment_expression "piVar5[7] = -1" (subscript_expression "piVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[6] = -1;" (assignment_expression "piVar5[6] = -1" (subscript_expression "piVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar11 = *(int *)(pcVar10 + 0x293fa8);" (assignment_expression "iVar11 = *(int *)(pcVar10 + 0x293fa8)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x293fa8)" * (cast_expression "(int *)(pcVar10 + 0x293fa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x293fa8)" ( (binary_expression "pcVar10 + 0x293fa8" identifier + number_literal) ))))) ;) (expression_statement "piVar5[0xb] = 4;" (assignment_expression "piVar5[0xb] = 4" (subscript_expression "piVar5[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[10] = 0;" (assignment_expression "piVar5[10] = 0" (subscript_expression "piVar5[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0xd] = 0;" (assignment_expression "piVar5[0xd] = 0" (subscript_expression "piVar5[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0xe] = 0;" (assignment_expression "piVar5[0xe] = 0" (subscript_expression "piVar5[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar5 = iVar11 + 8;" (assignment_expression "*piVar5 = iVar11 + 8" (pointer_expression "*piVar5" * identifier) = (binary_expression "iVar11 + 8" identifier + number_literal)) ;) (expression_statement "piVar5[0x11] = (int)piVar2;" (assignment_expression "piVar5[0x11] = (int)piVar2" (subscript_expression "piVar5[0x11]" identifier [ number_literal ]) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar5[0x10] = (int)piVar2;" (assignment_expression "piVar5[0x10] = (int)piVar2" (subscript_expression "piVar5[0x10]" identifier [ number_literal ]) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar5[0x12] = 0;" (assignment_expression "piVar5[0x12] = 0" (subscript_expression "piVar5[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x13] = (int)piVar2;" (assignment_expression "piVar5[0x13] = (int)piVar2" (subscript_expression "piVar5[0x13]" identifier [ number_literal ]) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)(piVar5 + 0x14) = 0;" (assignment_expression "*(undefined1 *)(piVar5 + 0x14) = 0" (pointer_expression "*(undefined1 *)(piVar5 + 0x14)" * (cast_expression "(undefined1 *)(piVar5 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0x14)" ( (binary_expression "piVar5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\ngold::Output_data_got<32,false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int iVar1;\n  uint uVar2;\n  uchar *puVar3;\n  uint uVar4;\n  int iVar5;\n  uchar *puVar6;\n  \n  if (-1 < *(int *)(this + 0x20) << 2) {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }\n  if (*(int *)(this + 0x20) << 1 < 0) {\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc);\n  return;\n}\n\n" (declaration "void __thiscall\ngold::Output_data_got<32,false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int" identifier > : : (function_declarator "do_write(Output_data_got<32,false> *this,Output_file *param_1)" identifier (parameter_list "(Output_data_got<32,false> *this,Output_file *param_1)" ( (parameter_declaration "Output_data_got" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { primitive_type) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (if_statement "if (-1 < *(int *)(this + 0x20) << 2) {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }" if (parenthesized_expression "(-1 < *(int *)(this + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(this + 0x20) << 2" number_literal < (binary_expression "*(int *)(this + 0x20) << 2" (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a78" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(this + 0x20) << 1 < 0) {\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" if (parenthesized_expression "(*(int *)(this + 0x20) << 1 < 0)" ( (binary_expression "*(int *)(this + 0x20) << 1 < 0" (binary_expression "*(int *)(this + 0x20) << 1" (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" { (expression_statement "iVar5 = *(int *)(this + 0x10);" (assignment_expression "iVar5 = *(int *)(this + 0x10)" identifier = (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(this + 0x14);" (assignment_expression "uVar4 = *(uint *)(this + 0x14)" identifier = (pointer_expression "*(uint *)(this + 0x14)" * (cast_expression "(uint *)(this + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }" if (parenthesized_expression "(-1 < *(int *)(this + 0x18))" ( (binary_expression "-1 < *(int *)(this + 0x18)" number_literal < (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }" { (expression_statement "uVar2 = uVar4 + *(int *)(this + 0x1c);" (assignment_expression "uVar2 = uVar4 + *(int *)(this + 0x1c)" identifier = (binary_expression "uVar4 + *(int *)(this + 0x1c)" identifier + (pointer_expression "*(int *)(this + 0x1c)" * (cast_expression "(int *)(this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);" (assignment_expression "iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18)" identifier = (binary_expression "(uint)(uVar2 < uVar4) + *(int *)(this + 0x18)" (call_expression "(uint)(uVar2 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar4)" ( (binary_expression "uVar2 < uVar4" identifier < identifier) ))) + (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }" if (parenthesized_expression "((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc)))))" ( (binary_expression "(iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))" (parenthesized_expression "(iVar1 <= *(int *)(param_1 + 8))" ( (binary_expression "iVar1 <= *(int *)(param_1 + 8)" identifier <= (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))" ( (parenthesized_expression "(*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc)))" ( (binary_expression "*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))" (binary_expression "*(int *)(param_1 + 8) != iVar1" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != identifier) || (parenthesized_expression "(uVar2 <= *(uint *)(param_1 + 0xc))" ( (binary_expression "uVar2 <= *(uint *)(param_1 + 0xc)" identifier <= (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }" { (expression_statement "iVar1 = *(int *)(this + 0x30);" (assignment_expression "iVar1 = *(int *)(this + 0x30)" identifier = (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));" (assignment_expression "puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" identifier = (cast_expression "(uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" ( (binary_expression "*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c)" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0x1c)" * (cast_expression "(int *)(this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" if (parenthesized_expression "(iVar1 == *(int *)(this + 0x34))" ( (binary_expression "iVar1 == *(int *)(this + 0x34)" identifier == (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }" { (if_statement "if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;" if (parenthesized_expression "(iVar5 != 0 || uVar4 != 0)" ( (binary_expression "iVar5 != 0 || uVar4 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "uVar4 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0022dae4;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" else (compound_statement "{\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = puVar6;" (assignment_expression "puVar3 = puVar6" identifier = identifier) ;) (do_statement "do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));" do (compound_statement "{\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          }" { (labeled_statement "Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);" statement_identifier : (ERROR ":" :) (expression_statement "write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);" (call_expression "write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3)" identifier (argument_list "((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3)" ( (cast_expression "(Got_entry *)(iVar1 + uVar2 * 0x10)" ( (type_descriptor "Got_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + uVar2 * 0x10)" ( (binary_expression "iVar1 + uVar2 * 0x10" identifier + (binary_expression "uVar2 * 0x10" identifier * number_literal)) ))) , identifier , identifier ))) ;)) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *(int *)(this + 0x30);" (assignment_expression "iVar1 = *(int *)(this + 0x30)" identifier = (pointer_expression "*(int *)(this + 0x30)" * (cast_expression "(int *)(this + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4))" ( (binary_expression "uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4)" identifier < (call_expression "(uint)(*(int *)(this + 0x34) - iVar1 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(this + 0x34) - iVar1 >> 4)" ( (binary_expression "*(int *)(this + 0x34) - iVar1 >> 4" (binary_expression "*(int *)(this + 0x34) - iVar1" (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) ;) (expression_statement "uVar2 = (int)puVar3 - (int)puVar6;" (assignment_expression "uVar2 = (int)puVar3 - (int)puVar6" identifier = (binary_expression "(int)puVar3 - (int)puVar6" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }" if (parenthesized_expression "((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2))" ( (binary_expression "(iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)" (parenthesized_expression "(iVar5 != (int)uVar2 >> 0x1f)" ( (binary_expression "iVar5 != (int)uVar2 >> 0x1f" identifier != (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) || (parenthesized_expression "(uVar4 != uVar2)" ( (binary_expression "uVar4 != uVar2" identifier != identifier) ))) )) (compound_statement "{\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }" { (labeled_statement "LAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x429c" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }" if (parenthesized_expression "(iVar1 != *(int *)(this + 0x34))" ( (binary_expression "iVar1 != *(int *)(this + 0x34)" identifier != (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n            *(int *)(this + 0x34) = iVar1;\n          }" { (expression_statement "*(int *)(this + 0x34) = iVar1;" (assignment_expression "*(int *)(this + 0x34) = iVar1" (pointer_expression "*(int *)(this + 0x34)" * (cast_expression "(int *)(this + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) = identifier) ;) })) }))) (return_statement "return;" return ;) })) })) (expression_statement "FUN_00212d10();" (call_expression "FUN_00212d10()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : :) IDENT (ERROR < LIT) , (ERROR IDENT > : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) (ERROR < LIT) , (parameter_declaration TYPE (ERROR >) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { TYPE) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 < IDENT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) >> LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (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 ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }))) (return_statement return ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\ngold::Output_data_got<32,false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int iVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "Output_data_got") (ERROR "<32" (< "<") (number_literal "32")) (, ",") (ERROR "false>::do_write(Output_data_got<32,false> *this,Output_file *param_1)\n\n{\n  int" (identifier "false") (> ">") (: ":") (: ":") (function_declarator "do_write(Output_data_got<32,false> *this,Output_file *param_1)" (identifier "do_write") (parameter_list "(Output_data_got<32,false> *this,Output_file *param_1)" (( "(") (parameter_declaration "Output_data_got" (type_identifier "Output_data_got")) (ERROR "<32" (< "<") (number_literal "32")) (, ",") (parameter_declaration "false> *this" (type_identifier "false") (ERROR ">" (> ">")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Output_file *param_1" (type_identifier "Output_file") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) ({ "{") (primitive_type "int")) (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uchar *puVar3;" (type_identifier "uchar") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uchar *puVar6;" (type_identifier "uchar") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (if_statement "if (-1 < *(int *)(this + 0x20) << 2) {\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }" (if "if") (parenthesized_expression "(-1 < *(int *)(this + 0x20) << 2)" (( "(") (binary_expression "-1 < *(int *)(this + 0x20) << 2" (number_literal "-1") (< "<") (binary_expression "*(int *)(this + 0x20) << 2" (pointer_expression "*(int *)(this + 0x20)" (* "*") (cast_expression "(int *)(this + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2"))) () ")")) (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n               PTR_s_in_a_linker_script_004c191c + -0x2a78)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xe3") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a78" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2a78")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(this + 0x20) << 1 < 0) {\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" (if "if") (parenthesized_expression "(*(int *)(this + 0x20) << 1 < 0)" (( "(") (binary_expression "*(int *)(this + 0x20) << 1 < 0" (binary_expression "*(int *)(this + 0x20) << 1" (pointer_expression "*(int *)(this + 0x20)" (* "*") (cast_expression "(int *)(this + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = *(int *)(this + 0x10);\n    uVar4 = *(uint *)(this + 0x14);\n    if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }\n    FUN_00212d10();\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(this + 0x10);" (assignment_expression "iVar5 = *(int *)(this + 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(this + 0x10)" (* "*") (cast_expression "(int *)(this + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(this + 0x14);" (assignment_expression "uVar4 = *(uint *)(this + 0x14)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(this + 0x14)" (* "*") (cast_expression "(uint *)(this + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x14)" (( "(") (binary_expression "this + 0x14" (identifier "this") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (-1 < *(int *)(this + 0x18)) {\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(-1 < *(int *)(this + 0x18))" (( "(") (binary_expression "-1 < *(int *)(this + 0x18)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(this + 0x18)" (* "*") (cast_expression "(int *)(this + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n      uVar2 = uVar4 + *(int *)(this + 0x1c);\n      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);\n      if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }\n    }" ({ "{") (expression_statement "uVar2 = uVar4 + *(int *)(this + 0x1c);" (assignment_expression "uVar2 = uVar4 + *(int *)(this + 0x1c)" (identifier "uVar2") (= "=") (binary_expression "uVar4 + *(int *)(this + 0x1c)" (identifier "uVar4") (+ "+") (pointer_expression "*(int *)(this + 0x1c)" (* "*") (cast_expression "(int *)(this + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x1c)" (( "(") (binary_expression "this + 0x1c" (identifier "this") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);" (assignment_expression "iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18)" (identifier "iVar1") (= "=") (binary_expression "(uint)(uVar2 < uVar4) + *(int *)(this + 0x18)" (call_expression "(uint)(uVar2 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < uVar4)" (( "(") (binary_expression "uVar2 < uVar4" (identifier "uVar2") (< "<") (identifier "uVar4")) () ")"))) (+ "+") (pointer_expression "*(int *)(this + 0x18)" (* "*") (cast_expression "(int *)(this + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if ((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }" (if "if") (parenthesized_expression "((iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc)))))" (( "(") (binary_expression "(iVar1 <= *(int *)(param_1 + 8)) &&\n         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))" (parenthesized_expression "(iVar1 <= *(int *)(param_1 + 8))" (( "(") (binary_expression "iVar1 <= *(int *)(param_1 + 8)" (identifier "iVar1") (<= "<=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))" (( "(") (parenthesized_expression "(*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc)))" (( "(") (binary_expression "*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))" (binary_expression "*(int *)(param_1 + 8) != iVar1" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (identifier "iVar1")) (|| "||") (parenthesized_expression "(uVar2 <= *(uint *)(param_1 + 0xc))" (( "(") (binary_expression "uVar2 <= *(uint *)(param_1 + 0xc)" (identifier "uVar2") (<= "<=") (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        iVar1 = *(int *)(this + 0x30);\n        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));\n        if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }\n        return;\n      }" ({ "{") (expression_statement "iVar1 = *(int *)(this + 0x30);" (assignment_expression "iVar1 = *(int *)(this + 0x30)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(this + 0x30)" (* "*") (cast_expression "(int *)(this + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));" (assignment_expression "puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" (identifier "puVar6") (= "=") (cast_expression "(uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c))" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c)" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (pointer_expression "*(int *)(this + 0x1c)" (* "*") (cast_expression "(int *)(this + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x1c)" (( "(") (binary_expression "this + 0x1c" (identifier "this") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (if_statement "if (iVar1 == *(int *)(this + 0x34)) {\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }\n        else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" (if "if") (parenthesized_expression "(iVar1 == *(int *)(this + 0x34))" (( "(") (binary_expression "iVar1 == *(int *)(this + 0x34)" (identifier "iVar1") (== "==") (pointer_expression "*(int *)(this + 0x34)" (* "*") (cast_expression "(int *)(this + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;\n        }" ({ "{") (if_statement "if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;" (if "if") (parenthesized_expression "(iVar5 != 0 || uVar4 != 0)" (( "(") (binary_expression "iVar5 != 0 || uVar4 != 0" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0022dae4;" (goto "goto") (statement_identifier "LAB_0022dae4") (; ";"))) (} "}")) (else_clause "else {\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" (else "else") (compound_statement "{\n          uVar2 = 0;\n          puVar3 = puVar6;\n          do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));\n          uVar2 = (int)puVar3 - (int)puVar6;\n          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }\n          if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }\n        }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = puVar6;" (assignment_expression "puVar3 = puVar6" (identifier "puVar3") (= "=") (identifier "puVar6")) (; ";")) (do_statement "do {\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));" (do "do") (compound_statement "{\n            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);\n            uVar2 = uVar2 + 1;\n            iVar1 = *(int *)(this + 0x30);\n            puVar3 = puVar3 + 4;\n          }" ({ "{") (labeled_statement "Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);" (statement_identifier "Got_entry") (: ":") (ERROR ":" (: ":")) (expression_statement "write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);" (call_expression "write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3)" (identifier "write") (argument_list "((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3)" (( "(") (cast_expression "(Got_entry *)(iVar1 + uVar2 * 0x10)" (( "(") (type_descriptor "Got_entry *" (type_identifier "Got_entry") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + uVar2 * 0x10)" (( "(") (binary_expression "iVar1 + uVar2 * 0x10" (identifier "iVar1") (+ "+") (binary_expression "uVar2 * 0x10" (identifier "uVar2") (* "*") (number_literal "0x10"))) () ")"))) (, ",") (identifier "uVar2") (, ",") (identifier "puVar3") () ")"))) (; ";"))) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = *(int *)(this + 0x30);" (assignment_expression "iVar1 = *(int *)(this + 0x30)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(this + 0x30)" (* "*") (cast_expression "(int *)(this + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4))" (( "(") (binary_expression "uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4)" (identifier "uVar2") (< "<") (call_expression "(uint)(*(int *)(this + 0x34) - iVar1 >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(this + 0x34) - iVar1 >> 4)" (( "(") (binary_expression "*(int *)(this + 0x34) - iVar1 >> 4" (binary_expression "*(int *)(this + 0x34) - iVar1" (pointer_expression "*(int *)(this + 0x34)" (* "*") (cast_expression "(int *)(this + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")")))) (- "-") (identifier "iVar1")) (>> ">>") (number_literal "4")) () ")")))) () ")")) (; ";")) (expression_statement "uVar2 = (int)puVar3 - (int)puVar6;" (assignment_expression "uVar2 = (int)puVar3 - (int)puVar6" (identifier "uVar2") (= "=") (binary_expression "(int)puVar3 - (int)puVar6" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")))) (; ";")) (if_statement "if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }" (if "if") (parenthesized_expression "((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2))" (( "(") (binary_expression "(iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)" (parenthesized_expression "(iVar5 != (int)uVar2 >> 0x1f)" (( "(") (binary_expression "iVar5 != (int)uVar2 >> 0x1f" (identifier "iVar5") (!= "!=") (binary_expression "(int)uVar2 >> 0x1f" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (>> ">>") (number_literal "0x1f"))) () ")")) (|| "||") (parenthesized_expression "(uVar4 != uVar2)" (( "(") (binary_expression "uVar4 != uVar2" (identifier "uVar4") (!= "!=") (identifier "uVar2")) () ")"))) () ")")) (compound_statement "{\nLAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);\n            return;\n          }" ({ "{") (labeled_statement "LAB_0022dae4:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);" (statement_identifier "LAB_0022dae4") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,\n                       PTR_s_in_a_linker_script_004c191c + -0x429c)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) (, ",") (number_literal "0x6d9") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x429c" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x429c")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (iVar1 != *(int *)(this + 0x34)) {\n            *(int *)(this + 0x34) = iVar1;\n          }" (if "if") (parenthesized_expression "(iVar1 != *(int *)(this + 0x34))" (( "(") (binary_expression "iVar1 != *(int *)(this + 0x34)" (identifier "iVar1") (!= "!=") (pointer_expression "*(int *)(this + 0x34)" (* "*") (cast_expression "(int *)(this + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n            *(int *)(this + 0x34) = iVar1;\n          }" ({ "{") (expression_statement "*(int *)(this + 0x34) = iVar1;" (assignment_expression "*(int *)(this + 0x34) = iVar1" (pointer_expression "*(int *)(this + 0x34)" (* "*") (cast_expression "(int *)(this + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00212d10();" (call_expression "FUN_00212d10()" (identifier "FUN_00212d10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n             PTR_s_in_a_linker_script_004c191c + -0x29fc)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xcf") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x29fc")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void do_write(Output_data_got<32,_false> * this, Output_file * of) */

void __thiscall
gold::var_5<32,var_6>::do_write(var_5<32,var_6> *this,type_2 *of)

{
  int var_1;
  int *piVar2;
  type_1 var_13;
  type_2 *this_00;
  type_1 var_16;
  int *var_19;
  type_2 *var_4;
  type_3 var_3;
  type_3 var_14;
  type_4 *var_11;
  type_4 *var_15;
  type_3 var_2;
  type_3 var_9;
  type_5 *var_20;
  int var_10;
  int iVar12;
  type_6 in_stack_ffffffdc;
  
  var_10 = 0x4c9240;
  var_1 = *(int *)&(this->super_Output_data_got_base).super_Output_section_data_build.
                   super_Output_section_data.super_Output_data.field_0x20;
  iVar12 = 0x4c9240;
  if (var_1 << 2 < 0) {
    var_4 = *(type_2 **)
              &(this->super_Output_data_got_base).super_Output_section_data_build.
               super_Output_section_data.super_Output_data.offset_;
    this_00 = *(type_2 **)
               ((int)&(this->super_Output_data_got_base).super_Output_section_data_build.
                      super_Output_section_data.super_Output_data.offset_ + 4);
    if (var_1 << 1 < 0) {
      var_9 = *(type_3 *)&(this->super_Output_data_got_base).super_Output_section_data_build.
                        super_Output_section_data.super_Output_data.data_size_;
      var_2 = (type_3)(this->super_Output_data_got_base).super_Output_section_data_build.
                    super_Output_section_data.super_Output_data.data_size_;
      if (-1 < (int)var_4) {
        var_3 = (int)&this_00->name_ + var_2;
        var_1 = (int)&var_4->name_ + (type_3)(var_3 < var_2);
        var_4 = (type_2 *)(type_3)(*(int *)&of->file_size_ < var_1);
        if (var_4 == (type_2 *)0x0) {
          if (*(int *)&of->file_size_ == var_1) goto LAB_0022dafc;
          do {
            var_11 = of->base_;
            var_13 = (this->entries_).
                     super__Vector_base<gold::var_5<32,var_6>::var_7,_std::allocator<gold::var_5<32,var_6>::var_7>var_8>
                     ._M_impl._M_start;
            if (var_13 == (this->entries_).
                          super__Vector_base<gold::var_5<32,var_6>::var_7,_std::allocator<gold::var_5<32,var_6>::var_7>var_8>
                          ._M_impl._M_finish) {
              var_2 = var_9 | var_2;
              if (var_2 == 0) {
                return;
              }
              var_1 = *(int *)(var_10 + -0x7924);
            }
            else {
              var_14 = 0;
              var_15 = var_11 + (int)this_00;
              var_10 = iVar12;
              do {
                Got_entry::var_12(var_13 + var_14,var_14,var_15,var_3);
                var_14 = var_14 + 1;
                var_13 = (this->entries_).
                         super__Vector_base<gold::var_5<32,var_6>::var_7,_std::allocator<gold::var_5<32,var_6>::var_7>var_8>
                         ._M_impl._M_start;
                var_15 = var_15 + 4;
                var_16 = (this->entries_).
                         super__Vector_base<gold::var_5<32,var_6>::var_7,_std::allocator<gold::var_5<32,var_6>::var_7>var_8>
                         ._M_impl._M_finish;
              } while (var_14 < (type_3)((int)var_16 - (int)var_13 >> 4));
              var_14 = (int)var_15 - (int)(var_11 + (int)this_00);
              var_1 = *(int *)(var_10 + -0x7924);
              iVar12 = var_10;
              if ((var_9 == (int)var_14 >> 0x1f) && (var_2 == var_14)) {
                if (var_13 != var_16) {
                  (this->entries_).
                  super__Vector_base<gold::var_5<32,var_6>::var_7,_std::allocator<gold::var_5<32,var_6>::var_7>var_8>
                  ._M_impl._M_finish = var_13;
                }
                return;
              }
            }
            of = (type_2 *)&DAT_000006d9;
            var_4 = (type_2 *)(var_1 - 0x429c);
            this_00 = (type_2 *)(*(int *)(var_10 + -0x7924) + -0x48b4);
            (**(type_5 **)(var_10 + -0x7810))();
LAB_0022dafc:
            var_3 = (type_3)((type_3)of->file_size_ < var_3);
          } while (var_3 == 0);
        }
      }
      Output_file::var_17(this_00,var_18(iVar12,in_stack_ffffffdc),(size_t)of,var_4);
    }
    (**(type_5 **)(var_10 + -0x7810))
              (*(int *)(var_10 + -0x7fc4) + 0x3574,0xcf,*(int *)(var_10 + -0x7924) + -0x29fc);
  }
  var_20 = *(type_5 **)(var_10 + -0x7810);
  var_19 = (int *)(*(int *)(var_10 + -0x7fc4) + 0x3574);
  (*var_20)(var_19,0xe3,*(int *)(var_10 + -0x7924) + -0x2a78);
  var_19[9] = 0;
  var_19[0xc] = 0;
  var_19[3] = 0;
  var_19[5] = 0;
  var_19[0x17] = 0;
  var_19[0x19] = 0;
  var_19[2] = 0;
  var_19[4] = 0;
  var_19[0x16] = 0;
  *(type_7 *)(var_19 + 8) = *(type_7 *)(var_19 + 8) & 7;
  var_19[0x18] = 0;
  piVar2 = var_19 + 0x10;
  var_19[7] = -1;
  var_19[6] = -1;
  var_10 = *(int *)(var_20 + 0x293fa8);
  var_19[0xb] = 4;
  var_19[10] = 0;
  var_19[0xd] = 0;
  var_19[0xe] = 0;
  *var_19 = var_10 + 8;
  var_19[0x11] = (int)piVar2;
  var_19[0x10] = (int)piVar2;
  var_19[0x12] = 0;
  var_19[0x13] = (int)piVar2;
  *(type_8 *)(var_19 + 0x14) = 0;
  return;
}


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

/* gold::Output_data_got<32, false>::MASKED(gold::Output_file*) */

void __thiscall
gold::Output_data_got<32,false>::MASKED(Output_data_got<32,false> *this,Output_file *param_1)

{
  int iVar1;
  uint uVar2;
  uchar *puVar3;
  uint uVar4;
  int iVar5;
  uchar *puVar6;
  
  if (-1 < *(int *)(this + 0x20) << 2) {
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
               PTR_s_in_a_linker_script_004c191c + -0x2a78);
    return;
  }
  if (*(int *)(this + 0x20) << 1 < 0) {
    iVar5 = *(int *)(this + 0x10);
    uVar4 = *(uint *)(this + 0x14);
    if (-1 < *(int *)(this + 0x18)) {
      uVar2 = uVar4 + *(int *)(this + 0x1c);
      iVar1 = (uint)(uVar2 < uVar4) + *(int *)(this + 0x18);
      if ((iVar1 <= *(int *)(param_1 + 8)) &&
         ((*(int *)(param_1 + 8) != iVar1 || (uVar2 <= *(uint *)(param_1 + 0xc))))) {
        iVar1 = *(int *)(this + 0x30);
        puVar6 = (uchar *)(*(int *)(param_1 + 0x10) + *(int *)(this + 0x1c));
        if (iVar1 == *(int *)(this + 0x34)) {
          if (iVar5 != 0 || uVar4 != 0) goto LAB_0022dae4;
        }
        else {
          uVar2 = 0;
          puVar3 = puVar6;
          do {
            Got_entry::write((Got_entry *)(iVar1 + uVar2 * 0x10),uVar2,puVar3);
            uVar2 = uVar2 + 1;
            iVar1 = *(int *)(this + 0x30);
            puVar3 = puVar3 + 4;
          } while (uVar2 < (uint)(*(int *)(this + 0x34) - iVar1 >> 4));
          uVar2 = (int)puVar3 - (int)puVar6;
          if ((iVar5 != (int)uVar2 >> 0x1f) || (uVar4 != uVar2)) {
LAB_0022dae4:
            (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x6d9,
                       PTR_s_in_a_linker_script_004c191c + -0x429c);
            return;
          }
          if (iVar1 != *(int *)(this + 0x34)) {
            *(int *)(this + 0x34) = iVar1;
          }
        }
        return;
      }
    }
    FUN_00212d10();
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
             PTR_s_in_a_linker_script_004c191c + -0x29fc);
  return;
}

