
/* DWARF original prototype: void read_sections(Relaxation_debug_check * this, Section_list *
   sections) */

void __thiscall
gold::Layout::Relaxation_debug_check::read_sections
          (Relaxation_debug_check *this,Section_list *sections)

{
  byte bVar1;
  iterator __position;
  pointer ppOVar2;
  Section_info info;
  
  ppOVar2 = (sections->
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).
            _M_impl._M_start;
  if (ppOVar2 !=
      (sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).
      _M_impl._M_finish) {
    do {
      while( true ) {
        info.output_section = *ppOVar2;
        info.address._0_4_ = 0;
        info.address._4_4_ = 0;
        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;
        if ((bVar1 & 1) != 0) {
          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;
          info.address._4_4_ =
               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);
        }
        info.data_size._0_4_ = 0xffffffff;
        info.data_size._4_4_ = 0xffffffff;
        if ((bVar1 & 2) != 0) {
          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;
          info.data_size._4_4_ =
               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);
        }
        info.offset._0_4_ = 0xffffffff;
        info.offset._4_4_ = 0xffffffff;
        if ((bVar1 & 4) != 0) {
          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;
          info.offset._4_4_ =
               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);
        }
        __position._M_current =
             (this->section_infos_).
             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>
             ._M_impl._M_finish;
        if (__position._M_current !=
            (this->section_infos_).
            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>
            ._M_impl._M_end_of_storage) break;
        ppOVar2 = ppOVar2 + 1;
        std::
        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>
        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>
                  (&this->section_infos_,__position,&info);
        if ((sections->
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).
            _M_impl._M_finish == ppOVar2) {
          return;
        }
      }
      ppOVar2 = ppOVar2 + 1;
      (__position._M_current)->output_section = info.output_section;
      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;
      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;
      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;
      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;
      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;
      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;
      (this->section_infos_).
      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>
      ._M_impl._M_finish = __position._M_current + 1;
    } while ((sections->
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).
             _M_impl._M_finish != ppOVar2);
  }
  return;
}



void FUN_0007f530(int param_1,int *param_2)

{
  byte bVar1;
  int *piVar2;
  int *piVar3;
  int local_38;
  int local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  piVar3 = (int *)*param_2;
  if (piVar3 != (int *)param_2[1]) {
    do {
      while( true ) {
        local_38 = *piVar3;
        local_34 = 0;
        local_30 = 0;
        bVar1 = *(byte *)(local_38 + 0x1c);
        if ((bVar1 & 1) != 0) {
          local_34 = *(int *)(local_38 + 4);
          local_30 = *(int *)(local_38 + 8);
        }
        local_2c = -1;
        local_28 = -1;
        if ((bVar1 & 2) != 0) {
          local_2c = *(int *)(local_38 + 0xc);
          local_28 = *(int *)(local_38 + 0x10);
        }
        local_24 = -1;
        local_20 = -1;
        if ((bVar1 & 4) != 0) {
          local_24 = *(int *)(local_38 + 0x14);
          local_20 = *(int *)(local_38 + 0x18);
        }
        piVar2 = *(int **)(param_1 + 4);
        if (piVar2 != *(int **)(param_1 + 8)) break;
        piVar3 = piVar3 + 1;
        FUN_00089eb0(param_1,piVar2,&local_38);
        if ((int *)param_2[1] == piVar3) {
          return;
        }
      }
      piVar3 = piVar3 + 1;
      *piVar2 = local_38;
      piVar2[1] = local_34;
      piVar2[2] = local_30;
      piVar2[3] = local_2c;
      piVar2[4] = local_28;
      piVar2[5] = local_24;
      piVar2[6] = local_20;
      *(int **)(param_1 + 4) = piVar2 + 7;
    } while ((int *)param_2[1] != piVar3);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV ECX,dword ptr [ESP + 0x44]
MOV EBP,dword ptr [ESP + 0x40]
MOV EBX,dword ptr [ECX]
CMP EBX,dword ptr [ECX + 0x4]
JNZ 0x0007f593
JMP 0x0007f620
MOV EDX,dword ptr [ESP + 0x4]
ADD EAX,0x1c
ADD EBX,0x4
MOV dword ptr [EAX + -0x1c],EDX
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + -0x18],EDX
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + -0x14],EDX
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [EAX + -0x10],EDX
MOV EDX,dword ptr [ESP + 0x14]
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESP + 0x1c]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [EBP + 0x4],EAX
CMP dword ptr [ECX + 0x4],EBX
JZ 0x0007f620
MOV EAX,dword ptr [EBX]
XOR ESI,ESI
XOR EDI,EDI
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [ESP + 0x4],EAX
TEST DL,0x1
JZ 0x0007f5ac
MOV ESI,dword ptr [EAX + 0x4]
MOV EDI,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x8],ESI
MOV ESI,0xffffffff
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,0xffffffff
TEST DL,0x2
JZ 0x0007f5c9
MOV ESI,dword ptr [EAX + 0xc]
MOV EDI,dword ptr [EAX + 0x10]
AND EDX,0x4
MOV dword ptr [ESP + 0x10],ESI
MOV ESI,0xffffffff
MOV dword ptr [ESP + 0x14],EDI
MOV EDI,0xffffffff
JZ 0x0007f5e6
MOV ESI,dword ptr [EAX + 0x14]
MOV EDI,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0x18],ESI
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x1c],EDI
CMP EAX,dword ptr [EBP + 0x8]
JNZ 0x0007f550
MOV dword ptr [ESP + 0x44],ECX
SUB ESP,0x4
ADD EBX,0x4
LEA EDX,[ESP + 0x8]
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00089eb0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x44]
CMP dword ptr [ECX + 0x4],EBX
JNZ 0x0007f593
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "void FUN_0007f530(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0007f530(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0007f530(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "piVar3 = (int *)*param_2;" (assignment_expression "piVar3 = (int *)*param_2" identifier = (cast_expression "(int *)*param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }" if (parenthesized_expression "(piVar3 != (int *)param_2[1])" ( (binary_expression "piVar3 != (int *)param_2[1]" identifier != (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }" { (do_statement "do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);" do (compound_statement "{\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    }" { (while_statement "while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }" { (expression_statement "local_38 = *piVar3;" (assignment_expression "local_38 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = *(byte *)(local_38 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(local_38 + 0x1c)" identifier = (pointer_expression "*(byte *)(local_38 + 0x1c)" * (cast_expression "(byte *)(local_38 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x1c)" ( (binary_expression "local_38 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }" { (expression_statement "local_34 = *(int *)(local_38 + 4);" (assignment_expression "local_34 = *(int *)(local_38 + 4)" identifier = (pointer_expression "*(int *)(local_38 + 4)" * (cast_expression "(int *)(local_38 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 4)" ( (binary_expression "local_38 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(int *)(local_38 + 8);" (assignment_expression "local_30 = *(int *)(local_38 + 8)" identifier = (pointer_expression "*(int *)(local_38 + 8)" * (cast_expression "(int *)(local_38 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 8)" ( (binary_expression "local_38 + 8" identifier + number_literal) ))))) ;) })) (expression_statement "local_2c = -1;" (assignment_expression "local_2c = -1" identifier = number_literal) ;) (expression_statement "local_28 = -1;" (assignment_expression "local_28 = -1" identifier = number_literal) ;) (if_statement "if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }" { (expression_statement "local_2c = *(int *)(local_38 + 0xc);" (assignment_expression "local_2c = *(int *)(local_38 + 0xc)" identifier = (pointer_expression "*(int *)(local_38 + 0xc)" * (cast_expression "(int *)(local_38 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0xc)" ( (binary_expression "local_38 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_28 = *(int *)(local_38 + 0x10);" (assignment_expression "local_28 = *(int *)(local_38 + 0x10)" identifier = (pointer_expression "*(int *)(local_38 + 0x10)" * (cast_expression "(int *)(local_38 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x10)" ( (binary_expression "local_38 + 0x10" identifier + number_literal) ))))) ;) })) (expression_statement "local_24 = -1;" (assignment_expression "local_24 = -1" identifier = number_literal) ;) (expression_statement "local_20 = -1;" (assignment_expression "local_20 = -1" identifier = number_literal) ;) (if_statement "if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }" { (expression_statement "local_24 = *(int *)(local_38 + 0x14);" (assignment_expression "local_24 = *(int *)(local_38 + 0x14)" identifier = (pointer_expression "*(int *)(local_38 + 0x14)" * (cast_expression "(int *)(local_38 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x14)" ( (binary_expression "local_38 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_20 = *(int *)(local_38 + 0x18);" (assignment_expression "local_20 = *(int *)(local_38 + 0x18)" identifier = (pointer_expression "*(int *)(local_38 + 0x18)" * (cast_expression "(int *)(local_38 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x18)" ( (binary_expression "local_38 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "piVar2 = *(int **)(param_1 + 4);" (assignment_expression "piVar2 = *(int **)(param_1 + 4)" identifier = (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar2 != *(int **)(param_1 + 8)) break;" if (parenthesized_expression "(piVar2 != *(int **)(param_1 + 8))" ( (binary_expression "piVar2 != *(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 "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00089eb0(param_1,piVar2,&local_38);" (call_expression "FUN_00089eb0(param_1,piVar2,&local_38)" identifier (argument_list "(param_1,piVar2,&local_38)" ( identifier , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (if_statement "if ((int *)param_2[1] == piVar3) {\n          return;\n        }" if (parenthesized_expression "((int *)param_2[1] == piVar3)" ( (binary_expression "(int *)param_2[1] == piVar3" (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (expression_statement "*piVar2 = local_38;" (assignment_expression "*piVar2 = local_38" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "piVar2[1] = local_34;" (assignment_expression "piVar2[1] = local_34" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[2] = local_30;" (assignment_expression "piVar2[2] = local_30" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[3] = local_2c;" (assignment_expression "piVar2[3] = local_2c" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[4] = local_28;" (assignment_expression "piVar2[4] = local_28" (subscript_expression "piVar2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[5] = local_24;" (assignment_expression "piVar2[5] = local_24" (subscript_expression "piVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[6] = local_20;" (assignment_expression "piVar2[6] = local_20" (subscript_expression "piVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int **)(param_1 + 4) = piVar2 + 7;" (assignment_expression "*(int **)(param_1 + 4) = piVar2 + 7" (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "piVar2 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_2[1] != piVar3)" ( (binary_expression "(int *)param_2[1] != piVar3" (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void read_sections(Relaxation_debug_check * this, Section_list *\n   sections) */\n\nvoid __thiscall\ngold::Layout::Relaxation_debug_check::read_sections\n          (Relaxation_debug_check *this,Section_list *sections)\n\n{\n  byte bVar1;\n  iterator __position;\n  pointer ppOVar2;\n  Section_info info;\n  \n  ppOVar2 = (sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_start;\n  if (ppOVar2 !=\n      (sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl._M_finish) {\n    do {\n      while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }\n      ppOVar2 = ppOVar2 + 1;\n      (__position._M_current)->output_section = info.output_section;\n      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;\n      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;\n      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;\n      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;\n      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;\n      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;\n      (this->section_infos_).\n      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;\n    } while ((sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2);\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Layout::Relaxation_debug_check::read_sections\n          (Relaxation_debug_check *this,Section_list *sections)\n\n{\n  byte bVar1;\n  iterator __position;\n  pointer ppOVar2;\n  Section_info info;\n  \n  ppOVar2 = (sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_start;\n  if (ppOVar2 !=\n      (sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl._M_finish) {\n    do {\n      while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }\n      ppOVar2 = ppOVar2 + 1;\n      (__position._M_current)->output_section = info.output_section;\n      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;\n      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;\n      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;\n      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;\n      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;\n      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;\n      (this->section_infos_).\n      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;\n    } while ((sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::Relaxation_debug_check::" identifier : : identifier : : identifier : :) (function_declarator "read_sections\n          (Relaxation_debug_check *this,Section_list *sections)" identifier (parameter_list "(Relaxation_debug_check *this,Section_list *sections)" ( (parameter_declaration "Relaxation_debug_check *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Section_list *sections" type_identifier (pointer_declarator "*sections" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  iterator __position;\n  pointer ppOVar2;\n  Section_info info;\n  \n  ppOVar2 = (sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_start;\n  if (ppOVar2 !=\n      (sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl._M_finish) {\n    do {\n      while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }\n      ppOVar2 = ppOVar2 + 1;\n      (__position._M_current)->output_section = info.output_section;\n      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;\n      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;\n      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;\n      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;\n      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;\n      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;\n      (this->section_infos_).\n      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;\n    } while ((sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "pointer ppOVar2;" type_identifier identifier ;) (declaration "Section_info info;" type_identifier identifier ;) (expression_statement "ppOVar2 = (sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_start;" (assignment_expression "ppOVar2 = (sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_start" identifier = (field_expression "(sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_start" (field_expression "(sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl" (parenthesized_expression "(sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>)" ( (ERROR "sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "sections->\n            super__Vector_base<gold::Output_section*,_std" (binary_expression "sections->\n            super__Vector_base<gold::Output_section*" (binary_expression "sections->\n            super__Vector_base<gold" (field_expression "sections->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_section*>_>" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppOVar2 !=\n      (sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl._M_finish) {\n    do {\n      while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }\n      ppOVar2 = ppOVar2 + 1;\n      (__position._M_current)->output_section = info.output_section;\n      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;\n      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;\n      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;\n      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;\n      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;\n      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;\n      (this->section_infos_).\n      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;\n    } while ((sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2);\n  }" if (parenthesized_expression "(ppOVar2 !=\n      (sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl._M_finish)" ( (binary_expression "ppOVar2 !=\n      (sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl._M_finish" identifier != (field_expression "(sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl._M_finish" (field_expression "(sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n      _M_impl" (parenthesized_expression "(sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>)" ( (binary_expression "sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>" (binary_expression "sections->super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "sections->super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "sections->super__Vector_base<gold::Output_section*,_std" (binary_expression "sections->super__Vector_base<gold" (field_expression "sections->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    do {\n      while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }\n      ppOVar2 = ppOVar2 + 1;\n      (__position._M_current)->output_section = info.output_section;\n      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;\n      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;\n      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;\n      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;\n      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;\n      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;\n      (this->section_infos_).\n      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;\n    } while ((sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2);\n  }" { (do_statement "do {\n      while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }\n      ppOVar2 = ppOVar2 + 1;\n      (__position._M_current)->output_section = info.output_section;\n      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;\n      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;\n      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;\n      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;\n      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;\n      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;\n      (this->section_infos_).\n      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;\n    } while ((sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2);" do (compound_statement "{\n      while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }\n      ppOVar2 = ppOVar2 + 1;\n      (__position._M_current)->output_section = info.output_section;\n      *(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;\n      *(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;\n      *(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;\n      *(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;\n      *(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;\n      *(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;\n      (this->section_infos_).\n      super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;\n    }" { (while_statement "while( true ) {\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        info.output_section = *ppOVar2;\n        info.address._0_4_ = 0;\n        info.address._4_4_ = 0;\n        bVar1 = ((info.output_section)->super_Output_data).field_0x1c;\n        if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }\n        info.data_size._0_4_ = 0xffffffff;\n        info.data_size._4_4_ = 0xffffffff;\n        if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }\n        info.offset._0_4_ = 0xffffffff;\n        info.offset._4_4_ = 0xffffffff;\n        if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }\n        __position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;\n        if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;\n        ppOVar2 = ppOVar2 + 1;\n        std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);\n        if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }\n      }" { (expression_statement "info.output_section = *ppOVar2;" (assignment_expression "info.output_section = *ppOVar2" (field_expression "info.output_section" identifier . field_identifier) = (pointer_expression "*ppOVar2" * identifier)) ;) (expression_statement "info.address._0_4_ = 0;" (assignment_expression "info.address._0_4_ = 0" (field_expression "info.address._0_4_" (field_expression "info.address" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "info.address._4_4_ = 0;" (assignment_expression "info.address._4_4_ = 0" (field_expression "info.address._4_4_" (field_expression "info.address" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "bVar1 = ((info.output_section)->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = ((info.output_section)->super_Output_data).field_0x1c" identifier = (field_expression "((info.output_section)->super_Output_data).field_0x1c" (parenthesized_expression "((info.output_section)->super_Output_data)" ( (field_expression "(info.output_section)->super_Output_data" (parenthesized_expression "(info.output_section)" ( (field_expression "info.output_section" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar1 & 1) != 0) {\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;\n          info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);\n        }" { (expression_statement "info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_;" (assignment_expression "info.address._0_4_ = (undefined4)((info.output_section)->super_Output_data).address_" (field_expression "info.address._0_4_" (field_expression "info.address" identifier . field_identifier) . field_identifier) = (field_expression "(undefined4)((info.output_section)->super_Output_data).address_" (call_expression "(undefined4)((info.output_section)->super_Output_data)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((info.output_section)->super_Output_data)" ( (field_expression "(info.output_section)->super_Output_data" (parenthesized_expression "(info.output_section)" ( (field_expression "info.output_section" identifier . field_identifier) )) -> field_identifier) ))) . field_identifier)) ;) (expression_statement "info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4);" (assignment_expression "info.address._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4)" (field_expression "info.address._4_4_" (field_expression "info.address" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&((info.output_section)->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((info.output_section)->super_Output_data).address_ + 4)" ( (binary_expression "(int)&((info.output_section)->super_Output_data).address_ + 4" (cast_expression "(int)&((info.output_section)->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((info.output_section)->super_Output_data).address_" & (field_expression "((info.output_section)->super_Output_data).address_" (parenthesized_expression "((info.output_section)->super_Output_data)" ( (field_expression "(info.output_section)->super_Output_data" (parenthesized_expression "(info.output_section)" ( (field_expression "info.output_section" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) })) (expression_statement "info.data_size._0_4_ = 0xffffffff;" (assignment_expression "info.data_size._0_4_ = 0xffffffff" (field_expression "info.data_size._0_4_" (field_expression "info.data_size" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "info.data_size._4_4_ = 0xffffffff;" (assignment_expression "info.data_size._4_4_ = 0xffffffff" (field_expression "info.data_size._4_4_" (field_expression "info.data_size" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if ((bVar1 & 2) != 0) {\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;\n          info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);\n        }" { (expression_statement "info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_;" (assignment_expression "info.data_size._0_4_ = (undefined4)((info.output_section)->super_Output_data).data_size_" (field_expression "info.data_size._0_4_" (field_expression "info.data_size" identifier . field_identifier) . field_identifier) = (field_expression "(undefined4)((info.output_section)->super_Output_data).data_size_" (call_expression "(undefined4)((info.output_section)->super_Output_data)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((info.output_section)->super_Output_data)" ( (field_expression "(info.output_section)->super_Output_data" (parenthesized_expression "(info.output_section)" ( (field_expression "info.output_section" identifier . field_identifier) )) -> field_identifier) ))) . field_identifier)) ;) (expression_statement "info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);" (assignment_expression "info.data_size._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4)" (field_expression "info.data_size._4_4_" (field_expression "info.data_size" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((info.output_section)->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&((info.output_section)->super_Output_data).data_size_ + 4" (cast_expression "(int)&((info.output_section)->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((info.output_section)->super_Output_data).data_size_" & (field_expression "((info.output_section)->super_Output_data).data_size_" (parenthesized_expression "((info.output_section)->super_Output_data)" ( (field_expression "(info.output_section)->super_Output_data" (parenthesized_expression "(info.output_section)" ( (field_expression "info.output_section" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) })) (expression_statement "info.offset._0_4_ = 0xffffffff;" (assignment_expression "info.offset._0_4_ = 0xffffffff" (field_expression "info.offset._0_4_" (field_expression "info.offset" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "info.offset._4_4_ = 0xffffffff;" (assignment_expression "info.offset._4_4_ = 0xffffffff" (field_expression "info.offset._4_4_" (field_expression "info.offset" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if ((bVar1 & 4) != 0) {\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;\n          info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);\n        }" { (expression_statement "info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_;" (assignment_expression "info.offset._0_4_ = (undefined4)((info.output_section)->super_Output_data).offset_" (field_expression "info.offset._0_4_" (field_expression "info.offset" identifier . field_identifier) . field_identifier) = (field_expression "(undefined4)((info.output_section)->super_Output_data).offset_" (call_expression "(undefined4)((info.output_section)->super_Output_data)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((info.output_section)->super_Output_data)" ( (field_expression "(info.output_section)->super_Output_data" (parenthesized_expression "(info.output_section)" ( (field_expression "info.output_section" identifier . field_identifier) )) -> field_identifier) ))) . field_identifier)) ;) (expression_statement "info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);" (assignment_expression "info.offset._4_4_ =\n               *(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4)" (field_expression "info.offset._4_4_" (field_expression "info.offset" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&((info.output_section)->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&((info.output_section)->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&((info.output_section)->super_Output_data).offset_ + 4" (cast_expression "(int)&((info.output_section)->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((info.output_section)->super_Output_data).offset_" & (field_expression "((info.output_section)->super_Output_data).offset_" (parenthesized_expression "((info.output_section)->super_Output_data)" ( (field_expression "(info.output_section)->super_Output_data" (parenthesized_expression "(info.output_section)" ( (field_expression "info.output_section" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) })) (ERROR "__position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::" (comma_expression "__position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std" (assignment_expression "__position._M_current =\n             (this->section_infos_).\n             super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->section_infos_).\n             super__Vector_base<gold" (field_expression "(this->section_infos_).\n             super__Vector_base" (parenthesized_expression "(this->section_infos_)" ( (field_expression "this->section_infos_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Layout::Relaxation_debug_check::Section_info" : : identifier : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Layout::Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (labeled_statement "Relaxation_debug_check::Section_info>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Section_info>_>\n             ._M_impl._M_finish;" (field_expression "Section_info>_>\n             ._M_impl._M_finish" (field_expression "Section_info>_>\n             ._M_impl" (binary_expression "Section_info>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage) break;" if (parenthesized_expression "(__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n            ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::" (comma_expression "__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold::Layout::Relaxation_debug_check::Section_info,_std" (binary_expression "__position._M_current !=\n            (this->section_infos_).\n            super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) != (binary_expression "(this->section_infos_).\n            super__Vector_base<gold" (field_expression "(this->section_infos_).\n            super__Vector_base" (parenthesized_expression "(this->section_infos_)" ( (field_expression "this->section_infos_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Layout::Relaxation_debug_check::Section_info" : : identifier : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : identifier : :) (field_expression "Section_info>_>\n            ._M_impl._M_end_of_storage" (field_expression "Section_info>_>\n            ._M_impl" (binary_expression "Section_info>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (break_statement "break;" break ;)) (expression_statement "ppOVar2 = ppOVar2 + 1;" (assignment_expression "ppOVar2 = ppOVar2 + 1" identifier = (binary_expression "ppOVar2 + 1" identifier + number_literal)) ;) (labeled_statement "std::\n        vector<gold::Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);" statement_identifier : (ERROR ":" :) (labeled_statement "Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);" statement_identifier (ERROR "::Section_info,_std::allocator<gold:" : : (comma_expression "Section_info,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Layout::Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);" statement_identifier : (ERROR ":" :) (labeled_statement "Relaxation_debug_check::Section_info>_>\n        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);" statement_identifier (ERROR "::Section_info>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Section_info>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Layout::Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);" statement_identifier : (ERROR ":" :) (labeled_statement "Relaxation_debug_check::Section_info&>\n                  (&this->section_infos_,__position,&info);" statement_identifier : (ERROR ":" :) (expression_statement "Section_info&>\n                  (&this->section_infos_,__position,&info);" (binary_expression "Section_info&>\n                  (&this->section_infos_,__position,&info)" identifier (ERROR "&" &) > (parenthesized_expression "(&this->section_infos_,__position,&info)" ( (comma_expression "&this->section_infos_,__position,&info" (pointer_expression "&this->section_infos_" & (field_expression "this->section_infos_" identifier -> field_identifier)) , (comma_expression "__position,&info" identifier , (pointer_expression "&info" & identifier))) ))) ;)))))))) (if_statement "if ((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2) {\n          return;\n        }" if (parenthesized_expression "((sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2)" ( (binary_expression "(sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish == ppOVar2" (field_expression "(sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl._M_finish" (field_expression "(sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n            _M_impl" (parenthesized_expression "(sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>)" ( (binary_expression "sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>" (binary_expression "sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "sections->\n            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "sections->\n            super__Vector_base<gold::Output_section*,_std" (binary_expression "sections->\n            super__Vector_base<gold" (field_expression "sections->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "ppOVar2 = ppOVar2 + 1;" (assignment_expression "ppOVar2 = ppOVar2 + 1" identifier = (binary_expression "ppOVar2 + 1" identifier + number_literal)) ;) (expression_statement "(__position._M_current)->output_section = info.output_section;" (assignment_expression "(__position._M_current)->output_section = info.output_section" (field_expression "(__position._M_current)->output_section" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "info.output_section" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)&(__position._M_current)->address = (undefined4)info.address;" (assignment_expression "*(undefined4 *)&(__position._M_current)->address = (undefined4)info.address" (pointer_expression "*(undefined4 *)&(__position._M_current)->address" * (cast_expression "(undefined4 *)&(__position._M_current)->address" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->address" & (field_expression "(__position._M_current)->address" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(undefined4)info.address" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "info.address" identifier . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;" (assignment_expression "*(undefined4 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_" (pointer_expression "*(undefined4 *)((int)&(__position._M_current)->address + 4)" * (cast_expression "(undefined4 *)((int)&(__position._M_current)->address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__position._M_current)->address + 4)" ( (binary_expression "(int)&(__position._M_current)->address + 4" (cast_expression "(int)&(__position._M_current)->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__position._M_current)->address" & (field_expression "(__position._M_current)->address" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "info.address._4_4_" (field_expression "info.address" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size;" (assignment_expression "*(undefined4 *)&(__position._M_current)->data_size = (undefined4)info.data_size" (pointer_expression "*(undefined4 *)&(__position._M_current)->data_size" * (cast_expression "(undefined4 *)&(__position._M_current)->data_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->data_size" & (field_expression "(__position._M_current)->data_size" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(undefined4)info.data_size" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "info.data_size" identifier . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;" (assignment_expression "*(undefined4 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_" (pointer_expression "*(undefined4 *)((int)&(__position._M_current)->data_size + 4)" * (cast_expression "(undefined4 *)((int)&(__position._M_current)->data_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__position._M_current)->data_size + 4)" ( (binary_expression "(int)&(__position._M_current)->data_size + 4" (cast_expression "(int)&(__position._M_current)->data_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__position._M_current)->data_size" & (field_expression "(__position._M_current)->data_size" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "info.data_size._4_4_" (field_expression "info.data_size" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset;" (assignment_expression "*(undefined4 *)&(__position._M_current)->offset = (undefined4)info.offset" (pointer_expression "*(undefined4 *)&(__position._M_current)->offset" * (cast_expression "(undefined4 *)&(__position._M_current)->offset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->offset" & (field_expression "(__position._M_current)->offset" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = (cast_expression "(undefined4)info.offset" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "info.offset" identifier . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;" (assignment_expression "*(undefined4 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_" (pointer_expression "*(undefined4 *)((int)&(__position._M_current)->offset + 4)" * (cast_expression "(undefined4 *)((int)&(__position._M_current)->offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(__position._M_current)->offset + 4)" ( (binary_expression "(int)&(__position._M_current)->offset + 4" (cast_expression "(int)&(__position._M_current)->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(__position._M_current)->offset" & (field_expression "(__position._M_current)->offset" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = (field_expression "info.offset._4_4_" (field_expression "info.offset" identifier . field_identifier) . field_identifier)) ;) (ERROR "(this->section_infos_).\n      super__Vector_base<gold::" (binary_expression "(this->section_infos_).\n      super__Vector_base<gold" (field_expression "(this->section_infos_).\n      super__Vector_base" (parenthesized_expression "(this->section_infos_)" ( (field_expression "this->section_infos_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Layout::Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "Relaxation_debug_check::Section_info,_std::allocator<gold::Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;" statement_identifier (ERROR "::Section_info,_std::allocator<gold:" : : (comma_expression "Section_info,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Layout::Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "Relaxation_debug_check::Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Section_info>_>\n      ._M_impl._M_finish = __position._M_current + 1" (field_expression "Section_info>_>\n      ._M_impl._M_finish" (field_expression "Section_info>_>\n      ._M_impl" (binary_expression "Section_info>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))))) }) while (parenthesized_expression "((sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2)" ( (binary_expression "(sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish != ppOVar2" (field_expression "(sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl._M_finish" (field_expression "(sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>).\n             _M_impl" (parenthesized_expression "(sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>)" ( (binary_expression "sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>" (binary_expression "sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "sections->\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "sections->\n             super__Vector_base<gold::Output_section*,_std" (binary_expression "sections->\n             super__Vector_base<gold" (field_expression "sections->\n             super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0007f530(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0007f530(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0007f530(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "piVar3 = (int *)*param_2;" (assignment_expression "piVar3 = (int *)*param_2" identifier = (cast_expression "(int *)*param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }" if (parenthesized_expression "(piVar3 != (int *)param_2[1])" ( (binary_expression "piVar3 != (int *)param_2[1]" identifier != (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }" { (do_statement "do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);" do (compound_statement "{\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    }" { (while_statement "while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }" { (expression_statement "local_38 = *piVar3;" (assignment_expression "local_38 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = *(byte *)(local_38 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(local_38 + 0x1c)" identifier = (pointer_expression "*(byte *)(local_38 + 0x1c)" * (cast_expression "(byte *)(local_38 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x1c)" ( (binary_expression "local_38 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }" { (expression_statement "local_34 = *(int *)(local_38 + 4);" (assignment_expression "local_34 = *(int *)(local_38 + 4)" identifier = (pointer_expression "*(int *)(local_38 + 4)" * (cast_expression "(int *)(local_38 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 4)" ( (binary_expression "local_38 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(int *)(local_38 + 8);" (assignment_expression "local_30 = *(int *)(local_38 + 8)" identifier = (pointer_expression "*(int *)(local_38 + 8)" * (cast_expression "(int *)(local_38 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 8)" ( (binary_expression "local_38 + 8" identifier + number_literal) ))))) ;) })) (expression_statement "local_2c = -1;" (assignment_expression "local_2c = -1" identifier = number_literal) ;) (expression_statement "local_28 = -1;" (assignment_expression "local_28 = -1" identifier = number_literal) ;) (if_statement "if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }" if (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }" { (expression_statement "local_2c = *(int *)(local_38 + 0xc);" (assignment_expression "local_2c = *(int *)(local_38 + 0xc)" identifier = (pointer_expression "*(int *)(local_38 + 0xc)" * (cast_expression "(int *)(local_38 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0xc)" ( (binary_expression "local_38 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_28 = *(int *)(local_38 + 0x10);" (assignment_expression "local_28 = *(int *)(local_38 + 0x10)" identifier = (pointer_expression "*(int *)(local_38 + 0x10)" * (cast_expression "(int *)(local_38 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x10)" ( (binary_expression "local_38 + 0x10" identifier + number_literal) ))))) ;) })) (expression_statement "local_24 = -1;" (assignment_expression "local_24 = -1" identifier = number_literal) ;) (expression_statement "local_20 = -1;" (assignment_expression "local_20 = -1" identifier = number_literal) ;) (if_statement "if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }" { (expression_statement "local_24 = *(int *)(local_38 + 0x14);" (assignment_expression "local_24 = *(int *)(local_38 + 0x14)" identifier = (pointer_expression "*(int *)(local_38 + 0x14)" * (cast_expression "(int *)(local_38 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x14)" ( (binary_expression "local_38 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_20 = *(int *)(local_38 + 0x18);" (assignment_expression "local_20 = *(int *)(local_38 + 0x18)" identifier = (pointer_expression "*(int *)(local_38 + 0x18)" * (cast_expression "(int *)(local_38 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x18)" ( (binary_expression "local_38 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "piVar2 = *(int **)(param_1 + 4);" (assignment_expression "piVar2 = *(int **)(param_1 + 4)" identifier = (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (piVar2 != *(int **)(param_1 + 8)) break;" if (parenthesized_expression "(piVar2 != *(int **)(param_1 + 8))" ( (binary_expression "piVar2 != *(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 "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00089eb0(param_1,piVar2,&local_38);" (call_expression "FUN_00089eb0(param_1,piVar2,&local_38)" identifier (argument_list "(param_1,piVar2,&local_38)" ( identifier , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (if_statement "if ((int *)param_2[1] == piVar3) {\n          return;\n        }" if (parenthesized_expression "((int *)param_2[1] == piVar3)" ( (binary_expression "(int *)param_2[1] == piVar3" (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (expression_statement "*piVar2 = local_38;" (assignment_expression "*piVar2 = local_38" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "piVar2[1] = local_34;" (assignment_expression "piVar2[1] = local_34" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[2] = local_30;" (assignment_expression "piVar2[2] = local_30" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[3] = local_2c;" (assignment_expression "piVar2[3] = local_2c" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[4] = local_28;" (assignment_expression "piVar2[4] = local_28" (subscript_expression "piVar2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[5] = local_24;" (assignment_expression "piVar2[5] = local_24" (subscript_expression "piVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[6] = local_20;" (assignment_expression "piVar2[6] = local_20" (subscript_expression "piVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int **)(param_1 + 4) = piVar2 + 7;" (assignment_expression "*(int **)(param_1 + 4) = piVar2 + 7" (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "piVar2 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_2[1] != piVar3)" ( (binary_expression "(int *)param_2[1] != piVar3" (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 (parenthesized_expression ( (binary_expression IDENT & 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) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & 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) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & 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) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0007f530(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0007f530(int param_1,int *param_2)" (identifier "FUN_0007f530") (parameter_list "(int param_1,int *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  int *piVar3;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  piVar3 = (int *)*param_2;\n  if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "piVar3 = (int *)*param_2;" (assignment_expression "piVar3 = (int *)*param_2" (identifier "piVar3") (= "=") (cast_expression "(int *)*param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (if_statement "if (piVar3 != (int *)param_2[1]) {\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }" (if "if") (parenthesized_expression "(piVar3 != (int *)param_2[1])" (( "(") (binary_expression "piVar3 != (int *)param_2[1]" (identifier "piVar3") (!= "!=") (cast_expression "(int *)param_2[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);\n  }" ({ "{") (do_statement "do {\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    } while ((int *)param_2[1] != piVar3);" (do "do") (compound_statement "{\n      while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }\n      piVar3 = piVar3 + 1;\n      *piVar2 = local_38;\n      piVar2[1] = local_34;\n      piVar2[2] = local_30;\n      piVar2[3] = local_2c;\n      piVar2[4] = local_28;\n      piVar2[5] = local_24;\n      piVar2[6] = local_20;\n      *(int **)(param_1 + 4) = piVar2 + 7;\n    }" ({ "{") (while_statement "while( true ) {\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        local_38 = *piVar3;\n        local_34 = 0;\n        local_30 = 0;\n        bVar1 = *(byte *)(local_38 + 0x1c);\n        if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }\n        local_2c = -1;\n        local_28 = -1;\n        if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }\n        local_24 = -1;\n        local_20 = -1;\n        if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }\n        piVar2 = *(int **)(param_1 + 4);\n        if (piVar2 != *(int **)(param_1 + 8)) break;\n        piVar3 = piVar3 + 1;\n        FUN_00089eb0(param_1,piVar2,&local_38);\n        if ((int *)param_2[1] == piVar3) {\n          return;\n        }\n      }" ({ "{") (expression_statement "local_38 = *piVar3;" (assignment_expression "local_38 = *piVar3" (identifier "local_38") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = *(byte *)(local_38 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(local_38 + 0x1c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(local_38 + 0x1c)" (* "*") (cast_expression "(byte *)(local_38 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0x1c)" (( "(") (binary_expression "local_38 + 0x1c" (identifier "local_38") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 1) != 0) {\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }" (if "if") (parenthesized_expression "((bVar1 & 1) != 0)" (( "(") (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_34 = *(int *)(local_38 + 4);\n          local_30 = *(int *)(local_38 + 8);\n        }" ({ "{") (expression_statement "local_34 = *(int *)(local_38 + 4);" (assignment_expression "local_34 = *(int *)(local_38 + 4)" (identifier "local_34") (= "=") (pointer_expression "*(int *)(local_38 + 4)" (* "*") (cast_expression "(int *)(local_38 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 4)" (( "(") (binary_expression "local_38 + 4" (identifier "local_38") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_30 = *(int *)(local_38 + 8);" (assignment_expression "local_30 = *(int *)(local_38 + 8)" (identifier "local_30") (= "=") (pointer_expression "*(int *)(local_38 + 8)" (* "*") (cast_expression "(int *)(local_38 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 8)" (( "(") (binary_expression "local_38 + 8" (identifier "local_38") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_2c = -1;" (assignment_expression "local_2c = -1" (identifier "local_2c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "local_28 = -1;" (assignment_expression "local_28 = -1" (identifier "local_28") (= "=") (number_literal "-1")) (; ";")) (if_statement "if ((bVar1 & 2) != 0) {\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }" (if "if") (parenthesized_expression "((bVar1 & 2) != 0)" (( "(") (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_2c = *(int *)(local_38 + 0xc);\n          local_28 = *(int *)(local_38 + 0x10);\n        }" ({ "{") (expression_statement "local_2c = *(int *)(local_38 + 0xc);" (assignment_expression "local_2c = *(int *)(local_38 + 0xc)" (identifier "local_2c") (= "=") (pointer_expression "*(int *)(local_38 + 0xc)" (* "*") (cast_expression "(int *)(local_38 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0xc)" (( "(") (binary_expression "local_38 + 0xc" (identifier "local_38") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_28 = *(int *)(local_38 + 0x10);" (assignment_expression "local_28 = *(int *)(local_38 + 0x10)" (identifier "local_28") (= "=") (pointer_expression "*(int *)(local_38 + 0x10)" (* "*") (cast_expression "(int *)(local_38 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0x10)" (( "(") (binary_expression "local_38 + 0x10" (identifier "local_38") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_24 = -1;" (assignment_expression "local_24 = -1" (identifier "local_24") (= "=") (number_literal "-1")) (; ";")) (expression_statement "local_20 = -1;" (assignment_expression "local_20 = -1" (identifier "local_20") (= "=") (number_literal "-1")) (; ";")) (if_statement "if ((bVar1 & 4) != 0) {\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_24 = *(int *)(local_38 + 0x14);\n          local_20 = *(int *)(local_38 + 0x18);\n        }" ({ "{") (expression_statement "local_24 = *(int *)(local_38 + 0x14);" (assignment_expression "local_24 = *(int *)(local_38 + 0x14)" (identifier "local_24") (= "=") (pointer_expression "*(int *)(local_38 + 0x14)" (* "*") (cast_expression "(int *)(local_38 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0x14)" (( "(") (binary_expression "local_38 + 0x14" (identifier "local_38") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_20 = *(int *)(local_38 + 0x18);" (assignment_expression "local_20 = *(int *)(local_38 + 0x18)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(local_38 + 0x18)" (* "*") (cast_expression "(int *)(local_38 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0x18)" (( "(") (binary_expression "local_38 + 0x18" (identifier "local_38") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar2 = *(int **)(param_1 + 4);" (assignment_expression "piVar2 = *(int **)(param_1 + 4)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(param_1 + 4)" (* "*") (cast_expression "(int **)(param_1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (piVar2 != *(int **)(param_1 + 8)) break;" (if "if") (parenthesized_expression "(piVar2 != *(int **)(param_1 + 8))" (( "(") (binary_expression "piVar2 != *(int **)(param_1 + 8)" (identifier "piVar2") (!= "!=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 1" (identifier "piVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00089eb0(param_1,piVar2,&local_38);" (call_expression "FUN_00089eb0(param_1,piVar2,&local_38)" (identifier "FUN_00089eb0") (argument_list "(param_1,piVar2,&local_38)" (( "(") (identifier "param_1") (, ",") (identifier "piVar2") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (if_statement "if ((int *)param_2[1] == piVar3) {\n          return;\n        }" (if "if") (parenthesized_expression "((int *)param_2[1] == piVar3)" (( "(") (binary_expression "(int *)param_2[1] == piVar3" (cast_expression "(int *)param_2[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (== "==") (identifier "piVar3")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 1" (identifier "piVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar2 = local_38;" (assignment_expression "*piVar2 = local_38" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "piVar2[1] = local_34;" (assignment_expression "piVar2[1] = local_34" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "piVar2[2] = local_30;" (assignment_expression "piVar2[2] = local_30" (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "piVar2[3] = local_2c;" (assignment_expression "piVar2[3] = local_2c" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "piVar2[4] = local_28;" (assignment_expression "piVar2[4] = local_28" (subscript_expression "piVar2[4]" (identifier "piVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "piVar2[5] = local_24;" (assignment_expression "piVar2[5] = local_24" (subscript_expression "piVar2[5]" (identifier "piVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "piVar2[6] = local_20;" (assignment_expression "piVar2[6] = local_20" (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "*(int **)(param_1 + 4) = piVar2 + 7;" (assignment_expression "*(int **)(param_1 + 4) = piVar2 + 7" (pointer_expression "*(int **)(param_1 + 4)" (* "*") (cast_expression "(int **)(param_1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "piVar2 + 7" (identifier "piVar2") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)param_2[1] != piVar3)" (( "(") (binary_expression "(int *)param_2[1] != piVar3" (cast_expression "(int *)param_2[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "piVar3")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void read_sections(Relaxation_debug_check * this, Section_list *
   sections) */

void __thiscall
var_5::Layout::type_1::function_1
          (type_1 *this,type_2 *sections)

{
  type_3 var_7;
  type_4 __position;
  type_5 var_4;
  type_6 info;
  
  var_4 = (sections->
            super__Vector_base<var_5::var_1*var_3,var_6::allocator<var_5::var_1*>var_2>var_3).
            _M_impl._M_start;
  if (var_4 !=
      (sections->super__Vector_base<var_5::var_1*,var_6::allocator<var_5::var_1*>var_2>var_3).
      _M_impl._M_finish) {
    do {
      while( true ) {
        info.output_section = *var_4;
        info.address._0_4_ = 0;
        info.address._4_4_ = 0;
        var_7 = ((info.output_section)->super_Output_data).field_0x1c;
        if ((var_7 & 1) != 0) {
          info.address._0_4_ = (type_7)((info.output_section)->super_Output_data).address_;
          info.address._4_4_ =
               *(type_7 *)((int)&((info.output_section)->super_Output_data).address_ + 4);
        }
        info.data_size._0_4_ = 0xffffffff;
        info.data_size._4_4_ = 0xffffffff;
        if ((var_7 & 2) != 0) {
          info.data_size._0_4_ = (type_7)((info.output_section)->super_Output_data).data_size_;
          info.data_size._4_4_ =
               *(type_7 *)((int)&((info.output_section)->super_Output_data).data_size_ + 4);
        }
        info.offset._0_4_ = 0xffffffff;
        info.offset._4_4_ = 0xffffffff;
        if ((var_7 & 4) != 0) {
          info.offset._0_4_ = (type_7)((info.output_section)->super_Output_data).offset_;
          info.offset._4_4_ =
               *(type_7 *)((int)&((info.output_section)->super_Output_data).offset_ + 4);
        }
        __position._M_current =
             (this->section_infos_).
             super__Vector_base<var_5::Layout::type_1::type_6,var_6::allocator<var_5::Layout::Relaxation_debug_check::type_6>var_2>
             ._M_impl._M_finish;
        if (__position._M_current !=
            (this->section_infos_).
            super__Vector_base<var_5::Layout::type_1::type_6,var_6::allocator<var_5::Layout::type_1::type_6>var_2>
            ._M_impl._M_end_of_storage) break;
        var_4 = var_4 + 1;
        std::
        vector<var_5::Layout::Relaxation_debug_check::type_6,var_6::allocator<var_5::Layout::Relaxation_debug_check::type_6>var_2>
        ::_M_realloc_insert<const_gold::Layout::Relaxation_debug_check::type_6&>
                  (&this->section_infos_,__position,&info);
        if ((sections->
            super__Vector_base<var_5::var_1*,var_6::allocator<var_5::var_1*>var_2>var_3).
            _M_impl._M_finish == var_4) {
          return;
        }
      }
      var_4 = var_4 + 1;
      (__position._M_current)->output_section = info.output_section;
      *(type_7 *)&(__position._M_current)->address = (type_7)info.address;
      *(type_7 *)((int)&(__position._M_current)->address + 4) = info.address._4_4_;
      *(type_7 *)&(__position._M_current)->data_size = (type_7)info.data_size;
      *(type_7 *)((int)&(__position._M_current)->data_size + 4) = info.data_size._4_4_;
      *(type_7 *)&(__position._M_current)->offset = (type_7)info.offset;
      *(type_7 *)((int)&(__position._M_current)->offset + 4) = info.offset._4_4_;
      (this->section_infos_).
      super__Vector_base<var_5::Layout::Relaxation_debug_check::type_6,var_6::allocator<var_5::Layout::Relaxation_debug_check::type_6>var_2>
      ._M_impl._M_finish = __position._M_current + 1;
    } while ((sections->
             super__Vector_base<var_5::var_1*,var_6::allocator<var_5::var_1*>var_2>var_3).
             _M_impl._M_finish != var_4);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (parenthesized_expression (binary_expression left: (identifier) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (compound_statement (return_statement))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))) (return_statement))))

void MASKED(int param_1,int *param_2)

{
  byte bVar1;
  int *piVar2;
  int *piVar3;
  int local_38;
  int local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  piVar3 = (int *)*param_2;
  if (piVar3 != (int *)param_2[1]) {
    do {
      while( true ) {
        local_38 = *piVar3;
        local_34 = 0;
        local_30 = 0;
        bVar1 = *(byte *)(local_38 + 0x1c);
        if ((bVar1 & 1) != 0) {
          local_34 = *(int *)(local_38 + 4);
          local_30 = *(int *)(local_38 + 8);
        }
        local_2c = -1;
        local_28 = -1;
        if ((bVar1 & 2) != 0) {
          local_2c = *(int *)(local_38 + 0xc);
          local_28 = *(int *)(local_38 + 0x10);
        }
        local_24 = -1;
        local_20 = -1;
        if ((bVar1 & 4) != 0) {
          local_24 = *(int *)(local_38 + 0x14);
          local_20 = *(int *)(local_38 + 0x18);
        }
        piVar2 = *(int **)(param_1 + 4);
        if (piVar2 != *(int **)(param_1 + 8)) break;
        piVar3 = piVar3 + 1;
        FUN_00089eb0(param_1,piVar2,&local_38);
        if ((int *)param_2[1] == piVar3) {
          return;
        }
      }
      piVar3 = piVar3 + 1;
      *piVar2 = local_38;
      piVar2[1] = local_34;
      piVar2[2] = local_30;
      piVar2[3] = local_2c;
      piVar2[4] = local_28;
      piVar2[5] = local_24;
      piVar2[6] = local_20;
      *(int **)(param_1 + 4) = piVar2 + 7;
    } while ((int *)param_2[1] != piVar3);
  }
  return;
}

