
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void adjust_section_offsets(Output_section * this) */

void __thiscall gold::Output_section::adjust_section_offsets(Output_section *this)

{
  _func_int_varargs *p_Var1;
  uint uVar2;
  Relobj *pRVar3;
  uint uVar4;
  byte bVar5;
  uint uVar6;
  int iVar7;
  uint extraout_EDX;
  Input_section *this_00;
  uint uVar8;
  bool bVar9;
  Input_section *in_stack_ffffffc4;
  uint local_34;
  uint local_30;
  uint local_2c;
  uint local_28;
  
  if ((this->field_0x92 & 4) != 0) {
    this_00 = (this->input_sections_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_start;
    if (this_00 !=
        (this->input_sections_).
        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
        ._M_impl._M_finish) {
      local_34 = 0;
      local_30 = 0;
      do {
        uVar4 = this_00->shndx_ + 4;
        local_28 = local_30;
        local_2c = local_34;
        if (this_00->p2align_ == 0) {
          if (3 < uVar4) goto LAB_000ef958;
          pRVar3 = (this_00->u2_).object;
          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];
          if (p_Var1 != Output_section_data::do_addralign) {
            uVar2 = (*p_Var1)(pRVar3);
            uVar4 = this_00->shndx_ + 4;
            uVar6 = extraout_EDX;
            goto LAB_000ef943;
          }
          uVar6 = (pRVar3->super_Object).shnum_;
          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);
          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;
LAB_000ef8e6:
          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {
                    /* WARNING: Subroutine does not return */
            Input_section::data_size(in_stack_ffffffc4);
          }
          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;
          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);
        }
        else {
          uVar6 = this_00->p2align_ - 1;
          bVar5 = (byte)uVar6;
          bVar9 = (uVar6 & 0x20) == 0;
          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);
          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);
LAB_000ef943:
          if (uVar6 != 0 || uVar2 != 0) {
LAB_000ef8a7:
            bVar9 = local_34 != 0;
            uVar8 = local_34 - 1;
            local_34 = uVar8 + uVar2 & -uVar2;
            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &
                       -(uVar6 + (uVar2 != 0));
            local_2c = local_34;
            local_28 = local_30;
            if (3 < uVar4) goto LAB_000ef958;
LAB_000ef8e3:
            pRVar3 = (this_00->u2_).object;
            goto LAB_000ef8e6;
          }
          if (uVar4 < 4) goto LAB_000ef8e3;
LAB_000ef958:
          pRVar3 = Input_section::relobj(this_00);
          uVar4 = Input_section::shndx(this_00);
          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);
          local_34 = local_2c;
          local_30 = local_28;
          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;
          uVar4 = *(uint *)&this_00->u1_;
          iVar7 = *(int *)((int)&this_00->u1_ + 4);
        }
        bVar9 = CARRY4(local_34,uVar4);
        local_34 = local_34 + uVar4;
        local_30 = local_30 + iVar7 + (uint)bVar9;
        this_00 = this_00 + 1;
      } while ((this->input_sections_).
               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
               ._M_impl._M_finish != this_00);
    }
    this->field_0x92 = this->field_0x92 & 0xfb;
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_000ef830(int param_1)

{
  longlong lVar1;
  uint uVar2;
  int *piVar3;
  undefined4 uVar4;
  byte bVar5;
  uint uVar6;
  int iVar7;
  int *piVar8;
  bool bVar9;
  longlong lVar10;
  uint local_34;
  uint local_30;
  uint local_2c;
  uint local_28;
  
  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {
    piVar8 = *(int **)(param_1 + 0x6c);
    if (piVar8 != *(int **)(param_1 + 0x70)) {
      local_34 = 0;
      local_30 = 0;
      do {
        uVar2 = *piVar8 + 4;
        local_28 = local_30;
        local_2c = local_34;
        if (piVar8[1] == 0) {
          if (3 < uVar2) goto LAB_000ef958;
          piVar3 = (int *)piVar8[4];
          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {
            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);
            uVar2 = *piVar8 + 4;
            goto LAB_000ef943;
          }
          lVar10 = *(longlong *)(piVar3 + 9);
          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;
LAB_000ef8e6:
          if ((*(byte *)(piVar3 + 7) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000ecb60();
          }
          uVar2 = piVar3[3];
          iVar7 = piVar3[4];
        }
        else {
          uVar6 = piVar8[1] - 1;
          bVar5 = (byte)uVar6;
          bVar9 = (uVar6 & 0x20) == 0;
          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));
LAB_000ef943:
          if (lVar10 != 0) {
LAB_000ef8a7:
            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);
            local_34 = (uint)lVar1 & -(int)lVar10;
            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &
                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));
            local_2c = local_34;
            local_28 = local_30;
            if (3 < uVar2) goto LAB_000ef958;
LAB_000ef8e3:
            piVar3 = (int *)piVar8[4];
            goto LAB_000ef8e6;
          }
          if (uVar2 < 4) goto LAB_000ef8e3;
LAB_000ef958:
          piVar3 = (int *)FUN_000ede60(piVar8);
          uVar4 = FUN_000edef0(piVar8);
          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);
          local_34 = local_2c;
          local_30 = local_28;
          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;
          uVar2 = piVar8[2];
          iVar7 = piVar8[3];
        }
        bVar9 = CARRY4(local_34,uVar2);
        local_34 = local_34 + uVar2;
        local_30 = local_30 + iVar7 + (uint)bVar9;
        piVar8 = piVar8 + 6;
      } while (*(int **)(param_1 + 0x70) != piVar8);
    }
    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;
  }
  return;
}


CALL 0x000559e6
ADD EAX,0x29f7cb
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV EDI,dword ptr [ESP + 0x40]
TEST byte ptr [EDI + 0x92],0x4
JZ 0x000ef9ab
LEA EAX,[EAX + 0xffce45e0]
MOV EBP,dword ptr [EDI + 0x6c]
XOR ESI,ESI
XOR EDI,EDI
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x40]
CMP EBP,dword ptr [EAX + 0x70]
JZ 0x000ef9a0
MOV dword ptr [ESP + 0x8],ESI
MOV dword ptr [ESP + 0xc],EDI
JMP 0x000ef90e
CMP EBX,0x3
JA 0x000ef958
MOV ECX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [ECX]
MOV EAX,dword ptr [EAX + 0xc]
CMP EAX,dword ptr [ESP + 0x1c]
JNZ 0x000ef9b8
MOV EDX,dword ptr [ECX + 0x28]
MOV EAX,dword ptr [ECX + 0x24]
MOV EDI,EDX
OR EDI,EAX
JZ 0x000ef8e6
MOV ESI,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
ADD ESI,-0x1
ADC EDI,-0x1
ADD ESI,EAX
ADC EDI,EDX
NEG EAX
MOV ECX,ESI
ADC EDX,0x0
AND ECX,EAX
NEG EDX
MOV dword ptr [ESP + 0x10],ECX
MOV EAX,dword ptr [ESP + 0x10]
AND EDI,EDX
MOV dword ptr [ESP + 0x14],EDI
MOV EDX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
CMP EBX,0x3
JA 0x000ef958
MOV ECX,dword ptr [EBP + 0x10]
TEST byte ptr [ECX + 0x1c],0x2
JZ 0x000ef9cc
MOV EAX,dword ptr [ECX + 0xc]
MOV EDX,dword ptr [ECX + 0x10]
ADD dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x40]
ADC dword ptr [ESP + 0xc],EDX
ADD EBP,0x18
CMP dword ptr [EAX + 0x70],EBP
JZ 0x000ef9a0
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [EBP + 0x4]
LEA EBX,[EAX + 0x4]
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x10],EAX
TEST ECX,ECX
JZ 0x000ef880
SUB ECX,0x1
XOR EAX,EAX
XOR EDX,EDX
TEST CL,0x20
SETZ AL
SETNZ DL
SHL EDX,CL
SHL EAX,CL
MOV EDI,EDX
OR EDI,EAX
JNZ 0x000ef8a7
CMP EBX,0x3
JBE 0x000ef8e3
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EBP
CALL 0x000ede60
MOV dword ptr [ESP],EBP
MOV EBX,EAX
CALL 0x000edef0
MOV EDX,dword ptr [EBX]
ADD ESP,0x10
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH EAX
PUSH EBX
CALL dword ptr [EDX + 0xdc]
MOV EAX,dword ptr [EBP]
ADD EAX,0x4
ADD ESP,0x10
CMP EAX,0x3
JBE 0x000ef8e3
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + 0xc]
JMP 0x000ef8f6
MOV EAX,dword ptr [ESP + 0x40]
AND byte ptr [EAX + 0x92],0xfb
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH ECX
CALL EAX
MOV EDI,dword ptr [EBP]
ADD ESP,0x10
LEA EBX,[EDI + 0x4]
JMP 0x000ef943
CALL 0x000ecb60
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000ef830(int param_1)\n\n{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000ef830(int param_1)\n\n{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000ef830(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (if_statement "if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x92) & 4) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x92) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x92) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x92) & 4" (pointer_expression "*(byte *)(param_1 + 0x92)" * (cast_expression "(byte *)(param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x92)" ( (binary_expression "param_1 + 0x92" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }" { (expression_statement "piVar8 = *(int **)(param_1 + 0x6c);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x6c)" identifier = (pointer_expression "*(int **)(param_1 + 0x6c)" * (cast_expression "(int **)(param_1 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }" if (parenthesized_expression "(piVar8 != *(int **)(param_1 + 0x70))" ( (binary_expression "piVar8 != *(int **)(param_1 + 0x70)" identifier != (pointer_expression "*(int **)(param_1 + 0x70)" * (cast_expression "(int **)(param_1 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )) (compound_statement "{\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }" { (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) ;) (do_statement "do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);" do (compound_statement "{\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      }" { (expression_statement "uVar2 = *piVar8 + 4;" (assignment_expression "uVar2 = *piVar8 + 4" identifier = (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal)) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" identifier = identifier) ;) (if_statement "if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" if (parenthesized_expression "(piVar8[1] == 0)" ( (binary_expression "piVar8[1] == 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }" { (if_statement "if (3 < uVar2) goto LAB_000ef958;" if (parenthesized_expression "(3 < uVar2)" ( (binary_expression "3 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_000ef958;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)piVar8[4];" (assignment_expression "piVar3 = (int *)piVar8[4]" identifier = (cast_expression "(int *)piVar8[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }" if (parenthesized_expression "(*(code **)(*piVar3 + 0xc) != FUN_000735e0)" ( (binary_expression "*(code **)(*piVar3 + 0xc) != FUN_000735e0" (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }" { (expression_statement "lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);" (assignment_expression "lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xc))" ( (pointer_expression "**(code **)(*piVar3 + 0xc)" * (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) (expression_statement "uVar2 = *piVar8 + 4;" (assignment_expression "uVar2 = *piVar8 + 4" identifier = (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal)) ;) (goto_statement "goto LAB_000ef943;" goto statement_identifier ;) })) (expression_statement "lVar10 = *(longlong *)(piVar3 + 9);" (assignment_expression "lVar10 = *(longlong *)(piVar3 + 9)" identifier = (pointer_expression "*(longlong *)(piVar3 + 9)" * (cast_expression "(longlong *)(piVar3 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 9)" ( (binary_expression "piVar3 + 9" identifier + number_literal) ))))) ;) (if_statement "if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;" if (parenthesized_expression "(piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0)" ( (binary_expression "piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0" (binary_expression "piVar3[10] != 0" (subscript_expression "piVar3[10]" identifier [ number_literal ]) != number_literal) || (binary_expression "(int)*(longlong *)(piVar3 + 9) != 0" (cast_expression "(int)*(longlong *)(piVar3 + 9)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(longlong *)(piVar3 + 9)" * (cast_expression "(longlong *)(piVar3 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 9)" ( (binary_expression "piVar3 + 9" identifier + number_literal) ))))) != number_literal)) )) (goto_statement "goto LAB_000ef8a7;" goto statement_identifier ;)) (labeled_statement "LAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }" statement_identifier : (if_statement "if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }" if (parenthesized_expression "((*(byte *)(piVar3 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar3 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar3 + 7) & 2)" ( (binary_expression "*(byte *)(piVar3 + 7) & 2" (pointer_expression "*(byte *)(piVar3 + 7)" * (cast_expression "(byte *)(piVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 7)" ( (binary_expression "piVar3 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000ecb60();\n          }" { comment (expression_statement "FUN_000ecb60();" (call_expression "FUN_000ecb60()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar2 = piVar3[3];" (assignment_expression "uVar2 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar3[4];" (assignment_expression "iVar7 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" else (compound_statement "{\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" { (expression_statement "uVar6 = piVar8[1] - 1;" (assignment_expression "uVar6 = piVar8[1] - 1" identifier = (binary_expression "piVar8[1] - 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "bVar5 = (byte)uVar6;" (assignment_expression "bVar5 = (byte)uVar6" identifier = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar9 = (uVar6 & 0x20) == 0;" (assignment_expression "bVar9 = (uVar6 & 0x20) == 0" identifier = (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) == number_literal)) ;) (expression_statement "lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));" (assignment_expression "lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" identifier = (call_expression "CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" identifier (argument_list "((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" ( (binary_expression "(uint)!bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)!bVar9" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar9" ! identifier)) << (parenthesized_expression "(bVar5 & 0x1f)" ( (binary_expression "bVar5 & 0x1f" identifier & number_literal) ))) , (binary_expression "(uint)bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) << (parenthesized_expression "(bVar5 & 0x1f)" ( (binary_expression "bVar5 & 0x1f" identifier & number_literal) ))) )))) ;) (labeled_statement "LAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" statement_identifier : (if_statement "if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" { (labeled_statement "LAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);" statement_identifier : (expression_statement "lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);" (assignment_expression "lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" identifier = (binary_expression "lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" identifier + (call_expression "CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" identifier (argument_list "((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" ( (binary_expression "(local_30 - 1) + (uint)(local_34 != 0)" (parenthesized_expression "(local_30 - 1)" ( (binary_expression "local_30 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_34 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )))) , (binary_expression "local_34 - 1" identifier - number_literal) ))))) ;)) (expression_statement "local_34 = (uint)lVar1 & -(int)lVar10;" (assignment_expression "local_34 = (uint)lVar1 & -(int)lVar10" identifier = (binary_expression "(uint)lVar1 & -(int)lVar10" (cast_expression "(uint)lVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar10" - (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));" (assignment_expression "local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" identifier = (binary_expression "(uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" (call_expression "(uint)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" ( (binary_expression "(int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0)" (cast_expression "(int)((ulonglong)lVar10 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar10 >> 0x20)" ( (binary_expression "(ulonglong)lVar10 >> 0x20" (cast_expression "(ulonglong)lVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar10 != 0)" ( (binary_expression "(int)lVar10 != 0" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))))) ;) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" identifier = identifier) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (if_statement "if (3 < uVar2) goto LAB_000ef958;" if (parenthesized_expression "(3 < uVar2)" ( (binary_expression "3 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_000ef958;" goto statement_identifier ;)) (labeled_statement "LAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];" statement_identifier : (expression_statement "piVar3 = (int *)piVar8[4];" (assignment_expression "piVar3 = (int *)piVar8[4]" identifier = (cast_expression "(int *)piVar8[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[4]" identifier [ number_literal ]))) ;)) (goto_statement "goto LAB_000ef8e6;" goto statement_identifier ;) }))) (if_statement "if (uVar2 < 4) goto LAB_000ef8e3;" if (parenthesized_expression "(uVar2 < 4)" ( (binary_expression "uVar2 < 4" identifier < number_literal) )) (goto_statement "goto LAB_000ef8e3;" goto statement_identifier ;)) (labeled_statement "LAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);" statement_identifier : (expression_statement "piVar3 = (int *)FUN_000ede60(piVar8);" (assignment_expression "piVar3 = (int *)FUN_000ede60(piVar8)" identifier = (cast_expression "(int *)FUN_000ede60(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ede60(piVar8)" identifier (argument_list "(piVar8)" ( identifier ))))) ;)) (expression_statement "uVar4 = FUN_000edef0(piVar8);" (assignment_expression "uVar4 = FUN_000edef0(piVar8)" identifier = (call_expression "FUN_000edef0(piVar8)" identifier (argument_list "(piVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);" (call_expression "(**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28)" (parenthesized_expression "(**(code **)(*piVar3 + 0xdc))" ( (pointer_expression "**(code **)(*piVar3 + 0xdc)" * (pointer_expression "*(code **)(*piVar3 + 0xdc)" * (cast_expression "(code **)(*piVar3 + 0xdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xdc)" ( (binary_expression "*piVar3 + 0xdc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3,uVar4,local_2c,local_28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (expression_statement "local_30 = local_28;" (assignment_expression "local_30 = local_28" identifier = identifier) ;) (if_statement "if (*piVar8 + 4U < 4) goto LAB_000ef8e3;" if (parenthesized_expression "(*piVar8 + 4U < 4)" ( (binary_expression "*piVar8 + 4U < 4" (binary_expression "*piVar8 + 4U" (pointer_expression "*piVar8" * identifier) + number_literal) < number_literal) )) (goto_statement "goto LAB_000ef8e3;" goto statement_identifier ;)) (expression_statement "uVar2 = piVar8[2];" (assignment_expression "uVar2 = piVar8[2]" identifier = (subscript_expression "piVar8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) }))) (expression_statement "bVar9 = CARRY4(local_34,uVar2);" (assignment_expression "bVar9 = CARRY4(local_34,uVar2)" identifier = (call_expression "CARRY4(local_34,uVar2)" identifier (argument_list "(local_34,uVar2)" ( identifier , identifier )))) ;) (expression_statement "local_34 = local_34 + uVar2;" (assignment_expression "local_34 = local_34 + uVar2" identifier = (binary_expression "local_34 + uVar2" identifier + identifier)) ;) (expression_statement "local_30 = local_30 + iVar7 + (uint)bVar9;" (assignment_expression "local_30 = local_30 + iVar7 + (uint)bVar9" identifier = (binary_expression "local_30 + iVar7 + (uint)bVar9" (binary_expression "local_30 + iVar7" identifier + identifier) + (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "piVar8 = piVar8 + 6;" (assignment_expression "piVar8 = piVar8 + 6" identifier = (binary_expression "piVar8 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x70) != piVar8)" ( (binary_expression "*(int **)(param_1 + 0x70) != piVar8" (pointer_expression "*(int **)(param_1 + 0x70)" * (cast_expression "(int **)(param_1 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "*(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;" (assignment_expression "*(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb" (pointer_expression "*(byte *)(param_1 + 0x92)" * (cast_expression "(byte *)(param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x92)" ( (binary_expression "param_1 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x92) & 0xfb" (pointer_expression "*(byte *)(param_1 + 0x92)" * (cast_expression "(byte *)(param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x92)" ( (binary_expression "param_1 + 0x92" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: void adjust_section_offsets(Output_section * this) */\n\nvoid __thiscall gold::Output_section::adjust_section_offsets(Output_section *this)\n\n{\n  _func_int_varargs *p_Var1;\n  uint uVar2;\n  Relobj *pRVar3;\n  uint uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  uint extraout_EDX;\n  Input_section *this_00;\n  uint uVar8;\n  bool bVar9;\n  Input_section *in_stack_ffffffc4;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((this->field_0x92 & 4) != 0) {\n    this_00 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    if (this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);\n    }\n    this->field_0x92 = this->field_0x92 & 0xfb;\n  }\n  return;\n}\n\n" comment comment (function_definition "void __thiscall gold::Output_section::adjust_section_offsets(Output_section *this)\n\n{\n  _func_int_varargs *p_Var1;\n  uint uVar2;\n  Relobj *pRVar3;\n  uint uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  uint extraout_EDX;\n  Input_section *this_00;\n  uint uVar8;\n  bool bVar9;\n  Input_section *in_stack_ffffffc4;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((this->field_0x92 & 4) != 0) {\n    this_00 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    if (this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);\n    }\n    this->field_0x92 = this->field_0x92 & 0xfb;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section::" identifier : : identifier : :) (function_declarator "adjust_section_offsets(Output_section *this)" identifier (parameter_list "(Output_section *this)" ( (parameter_declaration "Output_section *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  _func_int_varargs *p_Var1;\n  uint uVar2;\n  Relobj *pRVar3;\n  uint uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  uint extraout_EDX;\n  Input_section *this_00;\n  uint uVar8;\n  bool bVar9;\n  Input_section *in_stack_ffffffc4;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((this->field_0x92 & 4) != 0) {\n    this_00 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    if (this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);\n    }\n    this->field_0x92 = this->field_0x92 & 0xfb;\n  }\n  return;\n}" { (declaration "_func_int_varargs *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "Relobj *pRVar3;" type_identifier (pointer_declarator "*pRVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint extraout_EDX;" type_identifier identifier ;) (declaration "Input_section *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "Input_section *in_stack_ffffffc4;" type_identifier (pointer_declarator "*in_stack_ffffffc4" * identifier) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (if_statement "if ((this->field_0x92 & 4) != 0) {\n    this_00 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    if (this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);\n    }\n    this->field_0x92 = this->field_0x92 & 0xfb;\n  }" if (parenthesized_expression "((this->field_0x92 & 4) != 0)" ( (binary_expression "(this->field_0x92 & 4) != 0" (parenthesized_expression "(this->field_0x92 & 4)" ( (binary_expression "this->field_0x92 & 4" (field_expression "this->field_0x92" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    this_00 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    if (this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);\n    }\n    this->field_0x92 = this->field_0x92 & 0xfb;\n  }" { (ERROR "this_00 = (this->input_sections_).\n              super__Vector_base<gold::" (assignment_expression "this_00 = (this->input_sections_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n              super__Vector_base<gold" (field_expression "(this->input_sections_).\n              super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n              ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n              ._M_impl._M_start;" (field_expression "Input_section>_>\n              ._M_impl._M_start" (field_expression "Input_section>_>\n              ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);\n    }" if (parenthesized_expression "(this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n        ._M_impl._M_finish)" ( (ERROR "this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this_00 !=\n        (this->input_sections_).\n        super__Vector_base<gold" identifier != (binary_expression "(this->input_sections_).\n        super__Vector_base<gold" (field_expression "(this->input_sections_).\n        super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Input_section>_>\n        ._M_impl._M_finish" (field_expression "Input_section>_>\n        ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);\n    }" { (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) ;) (do_statement "do {\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      } while ((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00);" do (compound_statement "{\n        uVar4 = this_00->shndx_ + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }\n        bVar9 = CARRY4(local_34,uVar4);\n        local_34 = local_34 + uVar4;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        this_00 = this_00 + 1;\n      }" { (expression_statement "uVar4 = this_00->shndx_ + 4;" (assignment_expression "uVar4 = this_00->shndx_ + 4" identifier = (binary_expression "this_00->shndx_ + 4" (field_expression "this_00->shndx_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" identifier = identifier) ;) (if_statement "if (this_00->p2align_ == 0) {\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }\n        else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }" if (parenthesized_expression "(this_00->p2align_ == 0)" ( (binary_expression "this_00->p2align_ == 0" (field_expression "this_00->p2align_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          if (3 < uVar4) goto LAB_000ef958;\n          pRVar3 = (this_00->u2_).object;\n          p_Var1 = (pRVar3->super_Object)._vptr_Object[3];\n          if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }\n          uVar6 = (pRVar3->super_Object).shnum_;\n          uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);\n          if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }\n          uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;\n          iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);\n        }" { (if_statement "if (3 < uVar4) goto LAB_000ef958;" if (parenthesized_expression "(3 < uVar4)" ( (binary_expression "3 < uVar4" number_literal < identifier) )) (goto_statement "goto LAB_000ef958;" goto statement_identifier ;)) (expression_statement "pRVar3 = (this_00->u2_).object;" (assignment_expression "pRVar3 = (this_00->u2_).object" identifier = (field_expression "(this_00->u2_).object" (parenthesized_expression "(this_00->u2_)" ( (field_expression "this_00->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var1 = (pRVar3->super_Object)._vptr_Object[3];" (assignment_expression "p_Var1 = (pRVar3->super_Object)._vptr_Object[3]" identifier = (subscript_expression "(pRVar3->super_Object)._vptr_Object[3]" (field_expression "(pRVar3->super_Object)._vptr_Object" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var1 != Output_section_data::do_addralign) {\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }" if (parenthesized_expression "(p_Var1 != Output_section_data::do_addralign)" ( (binary_expression "p_Var1 != Output_section_data" identifier != identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n            uVar2 = (*p_Var1)(pRVar3);\n            uVar4 = this_00->shndx_ + 4;\n            uVar6 = extraout_EDX;\n            goto LAB_000ef943;\n          }" { (expression_statement "uVar2 = (*p_Var1)(pRVar3);" (assignment_expression "uVar2 = (*p_Var1)(pRVar3)" identifier = (call_expression "(*p_Var1)(pRVar3)" (parenthesized_expression "(*p_Var1)" ( (pointer_expression "*p_Var1" * identifier) )) (argument_list "(pRVar3)" ( identifier )))) ;) (expression_statement "uVar4 = this_00->shndx_ + 4;" (assignment_expression "uVar4 = this_00->shndx_ + 4" identifier = (binary_expression "this_00->shndx_ + 4" (field_expression "this_00->shndx_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "uVar6 = extraout_EDX;" (assignment_expression "uVar6 = extraout_EDX" identifier = identifier) ;) (goto_statement "goto LAB_000ef943;" goto statement_identifier ;) })) (expression_statement "uVar6 = (pRVar3->super_Object).shnum_;" (assignment_expression "uVar6 = (pRVar3->super_Object).shnum_" identifier = (field_expression "(pRVar3->super_Object).shnum_" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4);" (assignment_expression "uVar2 = *(uint *)((int)&(pRVar3->super_Object).offset_ + 4)" identifier = (pointer_expression "*(uint *)((int)&(pRVar3->super_Object).offset_ + 4)" * (cast_expression "(uint *)((int)&(pRVar3->super_Object).offset_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pRVar3->super_Object).offset_ + 4)" ( (binary_expression "(int)&(pRVar3->super_Object).offset_ + 4" (cast_expression "(int)&(pRVar3->super_Object).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pRVar3->super_Object).offset_" & (field_expression "(pRVar3->super_Object).offset_" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar6 != 0 || uVar2 != 0) goto LAB_000ef8a7;" if (parenthesized_expression "(uVar6 != 0 || uVar2 != 0)" ( (binary_expression "uVar6 != 0 || uVar2 != 0" (binary_expression "uVar6 != 0" identifier != number_literal) || (binary_expression "uVar2 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_000ef8a7;" goto statement_identifier ;)) (labeled_statement "LAB_000ef8e6:\n          if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }" statement_identifier : (if_statement "if (((uint)(pRVar3->super_Object).input_file_ & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }" if (parenthesized_expression "(((uint)(pRVar3->super_Object).input_file_ & 2) == 0)" ( (binary_expression "((uint)(pRVar3->super_Object).input_file_ & 2) == 0" (parenthesized_expression "((uint)(pRVar3->super_Object).input_file_ & 2)" ( (binary_expression "(uint)(pRVar3->super_Object).input_file_ & 2" (field_expression "(uint)(pRVar3->super_Object).input_file_" (call_expression "(uint)(pRVar3->super_Object)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            Input_section::data_size(in_stack_ffffffc4);\n          }" { comment (labeled_statement "Input_section::data_size(in_stack_ffffffc4);" statement_identifier : (ERROR ":" :) (expression_statement "data_size(in_stack_ffffffc4);" (call_expression "data_size(in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc4)" ( identifier ))) ;)) }))) (expression_statement "uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;" (assignment_expression "uVar4 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity" identifier = (field_expression "(pRVar3->super_Object).name_.field_2._M_allocated_capacity" (field_expression "(pRVar3->super_Object).name_.field_2" (field_expression "(pRVar3->super_Object).name_" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);" (assignment_expression "iVar7 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4)" identifier = (pointer_expression "*(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4)" * (cast_expression "(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pRVar3->super_Object).name_.field_2 + 4)" ( (binary_expression "(int)&(pRVar3->super_Object).name_.field_2 + 4" (cast_expression "(int)&(pRVar3->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pRVar3->super_Object).name_.field_2" & (field_expression "(pRVar3->super_Object).name_.field_2" (field_expression "(pRVar3->super_Object).name_" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }" else (compound_statement "{\n          uVar6 = this_00->p2align_ - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);\n          uVar2 = (uint)bVar9 << (bVar5 & 0x1f);\nLAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }\n          if (uVar4 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);\n          uVar4 = Input_section::shndx(this_00);\n          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;\n          uVar4 = *(uint *)&this_00->u1_;\n          iVar7 = *(int *)((int)&this_00->u1_ + 4);\n        }" { (expression_statement "uVar6 = this_00->p2align_ - 1;" (assignment_expression "uVar6 = this_00->p2align_ - 1" identifier = (binary_expression "this_00->p2align_ - 1" (field_expression "this_00->p2align_" identifier -> field_identifier) - number_literal)) ;) (expression_statement "bVar5 = (byte)uVar6;" (assignment_expression "bVar5 = (byte)uVar6" identifier = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar9 = (uVar6 & 0x20) == 0;" (assignment_expression "bVar9 = (uVar6 & 0x20) == 0" identifier = (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) == number_literal)) ;) (expression_statement "uVar6 = (uint)!bVar9 << (bVar5 & 0x1f);" (assignment_expression "uVar6 = (uint)!bVar9 << (bVar5 & 0x1f)" identifier = (binary_expression "(uint)!bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)!bVar9" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar9" ! identifier)) << (parenthesized_expression "(bVar5 & 0x1f)" ( (binary_expression "bVar5 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar2 = (uint)bVar9 << (bVar5 & 0x1f);" (assignment_expression "uVar2 = (uint)bVar9 << (bVar5 & 0x1f)" identifier = (binary_expression "(uint)bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) << (parenthesized_expression "(bVar5 & 0x1f)" ( (binary_expression "bVar5 & 0x1f" identifier & number_literal) )))) ;) (labeled_statement "LAB_000ef943:\n          if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }" statement_identifier : (if_statement "if (uVar6 != 0 || uVar2 != 0) {\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }" if (parenthesized_expression "(uVar6 != 0 || uVar2 != 0)" ( (binary_expression "uVar6 != 0 || uVar2 != 0" (binary_expression "uVar6 != 0" identifier != number_literal) || (binary_expression "uVar2 != 0" identifier != number_literal)) )) (compound_statement "{\nLAB_000ef8a7:\n            bVar9 = local_34 != 0;\n            uVar8 = local_34 - 1;\n            local_34 = uVar8 + uVar2 & -uVar2;\n            local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar4) goto LAB_000ef958;\nLAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;\n            goto LAB_000ef8e6;\n          }" { (labeled_statement "LAB_000ef8a7:\n            bVar9 = local_34 != 0;" statement_identifier : (expression_statement "bVar9 = local_34 != 0;" (assignment_expression "bVar9 = local_34 != 0" identifier = (binary_expression "local_34 != 0" identifier != number_literal)) ;)) (expression_statement "uVar8 = local_34 - 1;" (assignment_expression "uVar8 = local_34 - 1" identifier = (binary_expression "local_34 - 1" identifier - number_literal)) ;) (expression_statement "local_34 = uVar8 + uVar2 & -uVar2;" (assignment_expression "local_34 = uVar8 + uVar2 & -uVar2" identifier = (binary_expression "uVar8 + uVar2 & -uVar2" (binary_expression "uVar8 + uVar2" identifier + identifier) & (unary_expression "-uVar2" - identifier))) ;) (expression_statement "local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0));" (assignment_expression "local_30 = (local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0))" identifier = (binary_expression "(local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2) &\n                       -(uVar6 + (uVar2 != 0))" (binary_expression "(local_30 - 1) + (uint)bVar9 + uVar6 + (uint)CARRY4(uVar8,uVar2)" (binary_expression "(local_30 - 1) + (uint)bVar9 + uVar6" (binary_expression "(local_30 - 1) + (uint)bVar9" (parenthesized_expression "(local_30 - 1)" ( (binary_expression "local_30 - 1" identifier - number_literal) )) + (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) + identifier) + (cast_expression "(uint)CARRY4(uVar8,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar8,uVar2)" identifier (argument_list "(uVar8,uVar2)" ( identifier , identifier ))))) & (unary_expression "-(uVar6 + (uVar2 != 0))" - (parenthesized_expression "(uVar6 + (uVar2 != 0))" ( (binary_expression "uVar6 + (uVar2 != 0)" identifier + (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) ))) ))))) ;) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" identifier = identifier) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (if_statement "if (3 < uVar4) goto LAB_000ef958;" if (parenthesized_expression "(3 < uVar4)" ( (binary_expression "3 < uVar4" number_literal < identifier) )) (goto_statement "goto LAB_000ef958;" goto statement_identifier ;)) (labeled_statement "LAB_000ef8e3:\n            pRVar3 = (this_00->u2_).object;" statement_identifier : (expression_statement "pRVar3 = (this_00->u2_).object;" (assignment_expression "pRVar3 = (this_00->u2_).object" identifier = (field_expression "(this_00->u2_).object" (parenthesized_expression "(this_00->u2_)" ( (field_expression "this_00->u2_" identifier -> field_identifier) )) . field_identifier)) ;)) (goto_statement "goto LAB_000ef8e6;" goto statement_identifier ;) }))) (if_statement "if (uVar4 < 4) goto LAB_000ef8e3;" if (parenthesized_expression "(uVar4 < 4)" ( (binary_expression "uVar4 < 4" identifier < number_literal) )) (goto_statement "goto LAB_000ef8e3;" goto statement_identifier ;)) (labeled_statement "LAB_000ef958:\n          pRVar3 = Input_section::relobj(this_00);" statement_identifier : (ERROR "pRVar3 = Input_section::" (assignment_expression "pRVar3 = Input_section" identifier = identifier) : :) (expression_statement "relobj(this_00);" (call_expression "relobj(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) (ERROR "uVar4 = Input_section::" (assignment_expression "uVar4 = Input_section" identifier = identifier) : :) (expression_statement "shndx(this_00);" (call_expression "shndx(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;) (expression_statement "(*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28);" (call_expression "(*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,uVar4,local_2c,local_28)" (parenthesized_expression "(*(pRVar3->super_Object)._vptr_Object[0x37])" ( (pointer_expression "*(pRVar3->super_Object)._vptr_Object[0x37]" * (subscript_expression "(pRVar3->super_Object)._vptr_Object[0x37]" (field_expression "(pRVar3->super_Object)._vptr_Object" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pRVar3,uVar4,local_2c,local_28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (expression_statement "local_30 = local_28;" (assignment_expression "local_30 = local_28" identifier = identifier) ;) (if_statement "if (this_00->shndx_ + 4 < 4) goto LAB_000ef8e3;" if (parenthesized_expression "(this_00->shndx_ + 4 < 4)" ( (binary_expression "this_00->shndx_ + 4 < 4" (binary_expression "this_00->shndx_ + 4" (field_expression "this_00->shndx_" identifier -> field_identifier) + number_literal) < number_literal) )) (goto_statement "goto LAB_000ef8e3;" goto statement_identifier ;)) (expression_statement "uVar4 = *(uint *)&this_00->u1_;" (assignment_expression "uVar4 = *(uint *)&this_00->u1_" identifier = (pointer_expression "*(uint *)&this_00->u1_" * (cast_expression "(uint *)&this_00->u1_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->u1_" & (field_expression "this_00->u1_" identifier -> field_identifier))))) ;) (expression_statement "iVar7 = *(int *)((int)&this_00->u1_ + 4);" (assignment_expression "iVar7 = *(int *)((int)&this_00->u1_ + 4)" identifier = (pointer_expression "*(int *)((int)&this_00->u1_ + 4)" * (cast_expression "(int *)((int)&this_00->u1_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00->u1_ + 4)" ( (binary_expression "(int)&this_00->u1_ + 4" (cast_expression "(int)&this_00->u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00->u1_" & (field_expression "this_00->u1_" identifier -> field_identifier))) + number_literal) ))))) ;) }))) (expression_statement "bVar9 = CARRY4(local_34,uVar4);" (assignment_expression "bVar9 = CARRY4(local_34,uVar4)" identifier = (call_expression "CARRY4(local_34,uVar4)" identifier (argument_list "(local_34,uVar4)" ( identifier , identifier )))) ;) (expression_statement "local_34 = local_34 + uVar4;" (assignment_expression "local_34 = local_34 + uVar4" identifier = (binary_expression "local_34 + uVar4" identifier + identifier)) ;) (expression_statement "local_30 = local_30 + iVar7 + (uint)bVar9;" (assignment_expression "local_30 = local_30 + iVar7 + (uint)bVar9" identifier = (binary_expression "local_30 + iVar7 + (uint)bVar9" (binary_expression "local_30 + iVar7" identifier + identifier) + (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "this_00 = this_00 + 1;" (assignment_expression "this_00 = this_00 + 1" identifier = (binary_expression "this_00 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish != this_00)" ( (ERROR "(this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "(this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "(this->input_sections_).\n               super__Vector_base<gold" (field_expression "(this->input_sections_).\n               super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>\n               ._M_impl._M_finish != this_00" (field_expression "Input_section>_>\n               ._M_impl._M_finish" (field_expression "Input_section>_>\n               ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (expression_statement "this->field_0x92 = this->field_0x92 & 0xfb;" (assignment_expression "this->field_0x92 = this->field_0x92 & 0xfb" (field_expression "this->field_0x92" identifier -> field_identifier) = (binary_expression "this->field_0x92 & 0xfb" (field_expression "this->field_0x92" identifier -> field_identifier) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000ef830(int param_1)\n\n{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}\n\n" (function_definition "void FUN_000ef830(int param_1)\n\n{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000ef830(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (if_statement "if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x92) & 4) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x92) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x92) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x92) & 4" (pointer_expression "*(byte *)(param_1 + 0x92)" * (cast_expression "(byte *)(param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x92)" ( (binary_expression "param_1 + 0x92" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }" { (expression_statement "piVar8 = *(int **)(param_1 + 0x6c);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x6c)" identifier = (pointer_expression "*(int **)(param_1 + 0x6c)" * (cast_expression "(int **)(param_1 + 0x6c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }" if (parenthesized_expression "(piVar8 != *(int **)(param_1 + 0x70))" ( (binary_expression "piVar8 != *(int **)(param_1 + 0x70)" identifier != (pointer_expression "*(int **)(param_1 + 0x70)" * (cast_expression "(int **)(param_1 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) )) (compound_statement "{\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }" { (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) ;) (do_statement "do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);" do (compound_statement "{\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      }" { (expression_statement "uVar2 = *piVar8 + 4;" (assignment_expression "uVar2 = *piVar8 + 4" identifier = (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal)) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" identifier = identifier) ;) (if_statement "if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" if (parenthesized_expression "(piVar8[1] == 0)" ( (binary_expression "piVar8[1] == 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }" { (if_statement "if (3 < uVar2) goto LAB_000ef958;" if (parenthesized_expression "(3 < uVar2)" ( (binary_expression "3 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_000ef958;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)piVar8[4];" (assignment_expression "piVar3 = (int *)piVar8[4]" identifier = (cast_expression "(int *)piVar8[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }" if (parenthesized_expression "(*(code **)(*piVar3 + 0xc) != FUN_000735e0)" ( (binary_expression "*(code **)(*piVar3 + 0xc) != FUN_000735e0" (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }" { (expression_statement "lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);" (assignment_expression "lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xc))" ( (pointer_expression "**(code **)(*piVar3 + 0xc)" * (pointer_expression "*(code **)(*piVar3 + 0xc)" * (cast_expression "(code **)(*piVar3 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xc)" ( (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) (expression_statement "uVar2 = *piVar8 + 4;" (assignment_expression "uVar2 = *piVar8 + 4" identifier = (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal)) ;) (goto_statement "goto LAB_000ef943;" goto statement_identifier ;) })) (expression_statement "lVar10 = *(longlong *)(piVar3 + 9);" (assignment_expression "lVar10 = *(longlong *)(piVar3 + 9)" identifier = (pointer_expression "*(longlong *)(piVar3 + 9)" * (cast_expression "(longlong *)(piVar3 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 9)" ( (binary_expression "piVar3 + 9" identifier + number_literal) ))))) ;) (if_statement "if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;" if (parenthesized_expression "(piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0)" ( (binary_expression "piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0" (binary_expression "piVar3[10] != 0" (subscript_expression "piVar3[10]" identifier [ number_literal ]) != number_literal) || (binary_expression "(int)*(longlong *)(piVar3 + 9) != 0" (cast_expression "(int)*(longlong *)(piVar3 + 9)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(longlong *)(piVar3 + 9)" * (cast_expression "(longlong *)(piVar3 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 9)" ( (binary_expression "piVar3 + 9" identifier + number_literal) ))))) != number_literal)) )) (goto_statement "goto LAB_000ef8a7;" goto statement_identifier ;)) (labeled_statement "LAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }" statement_identifier : (if_statement "if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }" if (parenthesized_expression "((*(byte *)(piVar3 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar3 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar3 + 7) & 2)" ( (binary_expression "*(byte *)(piVar3 + 7) & 2" (pointer_expression "*(byte *)(piVar3 + 7)" * (cast_expression "(byte *)(piVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 7)" ( (binary_expression "piVar3 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n            FUN_000ecb60();\n          }" { (expression_statement "FUN_000ecb60();" (call_expression "FUN_000ecb60()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar2 = piVar3[3];" (assignment_expression "uVar2 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar3[4];" (assignment_expression "iVar7 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" else (compound_statement "{\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" { (expression_statement "uVar6 = piVar8[1] - 1;" (assignment_expression "uVar6 = piVar8[1] - 1" identifier = (binary_expression "piVar8[1] - 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "bVar5 = (byte)uVar6;" (assignment_expression "bVar5 = (byte)uVar6" identifier = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar9 = (uVar6 & 0x20) == 0;" (assignment_expression "bVar9 = (uVar6 & 0x20) == 0" identifier = (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" ( (binary_expression "uVar6 & 0x20" identifier & number_literal) )) == number_literal)) ;) (expression_statement "lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));" (assignment_expression "lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" identifier = (call_expression "CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" identifier (argument_list "((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" ( (binary_expression "(uint)!bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)!bVar9" ( (type_descriptor "uint" type_identifier) ) (unary_expression "!bVar9" ! identifier)) << (parenthesized_expression "(bVar5 & 0x1f)" ( (binary_expression "bVar5 & 0x1f" identifier & number_literal) ))) , (binary_expression "(uint)bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) << (parenthesized_expression "(bVar5 & 0x1f)" ( (binary_expression "bVar5 & 0x1f" identifier & number_literal) ))) )))) ;) (labeled_statement "LAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" statement_identifier : (if_statement "if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" if (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" { (labeled_statement "LAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);" statement_identifier : (expression_statement "lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);" (assignment_expression "lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" identifier = (binary_expression "lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" identifier + (call_expression "CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" identifier (argument_list "((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" ( (binary_expression "(local_30 - 1) + (uint)(local_34 != 0)" (parenthesized_expression "(local_30 - 1)" ( (binary_expression "local_30 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_34 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )))) , (binary_expression "local_34 - 1" identifier - number_literal) ))))) ;)) (expression_statement "local_34 = (uint)lVar1 & -(int)lVar10;" (assignment_expression "local_34 = (uint)lVar1 & -(int)lVar10" identifier = (binary_expression "(uint)lVar1 & -(int)lVar10" (cast_expression "(uint)lVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar10" - (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));" (assignment_expression "local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" identifier = (binary_expression "(uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" (call_expression "(uint)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" ( (binary_expression "(int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0)" (cast_expression "(int)((ulonglong)lVar10 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar10 >> 0x20)" ( (binary_expression "(ulonglong)lVar10 >> 0x20" (cast_expression "(ulonglong)lVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar10 != 0)" ( (binary_expression "(int)lVar10 != 0" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))))) ;) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" identifier = identifier) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (if_statement "if (3 < uVar2) goto LAB_000ef958;" if (parenthesized_expression "(3 < uVar2)" ( (binary_expression "3 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_000ef958;" goto statement_identifier ;)) (labeled_statement "LAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];" statement_identifier : (expression_statement "piVar3 = (int *)piVar8[4];" (assignment_expression "piVar3 = (int *)piVar8[4]" identifier = (cast_expression "(int *)piVar8[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[4]" identifier [ number_literal ]))) ;)) (goto_statement "goto LAB_000ef8e6;" goto statement_identifier ;) }))) (if_statement "if (uVar2 < 4) goto LAB_000ef8e3;" if (parenthesized_expression "(uVar2 < 4)" ( (binary_expression "uVar2 < 4" identifier < number_literal) )) (goto_statement "goto LAB_000ef8e3;" goto statement_identifier ;)) (labeled_statement "LAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);" statement_identifier : (expression_statement "piVar3 = (int *)FUN_000ede60(piVar8);" (assignment_expression "piVar3 = (int *)FUN_000ede60(piVar8)" identifier = (cast_expression "(int *)FUN_000ede60(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ede60(piVar8)" identifier (argument_list "(piVar8)" ( identifier ))))) ;)) (expression_statement "uVar4 = FUN_000edef0(piVar8);" (assignment_expression "uVar4 = FUN_000edef0(piVar8)" identifier = (call_expression "FUN_000edef0(piVar8)" identifier (argument_list "(piVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);" (call_expression "(**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28)" (parenthesized_expression "(**(code **)(*piVar3 + 0xdc))" ( (pointer_expression "**(code **)(*piVar3 + 0xdc)" * (pointer_expression "*(code **)(*piVar3 + 0xdc)" * (cast_expression "(code **)(*piVar3 + 0xdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xdc)" ( (binary_expression "*piVar3 + 0xdc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3,uVar4,local_2c,local_28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (expression_statement "local_30 = local_28;" (assignment_expression "local_30 = local_28" identifier = identifier) ;) (if_statement "if (*piVar8 + 4U < 4) goto LAB_000ef8e3;" if (parenthesized_expression "(*piVar8 + 4U < 4)" ( (binary_expression "*piVar8 + 4U < 4" (binary_expression "*piVar8 + 4U" (pointer_expression "*piVar8" * identifier) + number_literal) < number_literal) )) (goto_statement "goto LAB_000ef8e3;" goto statement_identifier ;)) (expression_statement "uVar2 = piVar8[2];" (assignment_expression "uVar2 = piVar8[2]" identifier = (subscript_expression "piVar8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) }))) (expression_statement "bVar9 = CARRY4(local_34,uVar2);" (assignment_expression "bVar9 = CARRY4(local_34,uVar2)" identifier = (call_expression "CARRY4(local_34,uVar2)" identifier (argument_list "(local_34,uVar2)" ( identifier , identifier )))) ;) (expression_statement "local_34 = local_34 + uVar2;" (assignment_expression "local_34 = local_34 + uVar2" identifier = (binary_expression "local_34 + uVar2" identifier + identifier)) ;) (expression_statement "local_30 = local_30 + iVar7 + (uint)bVar9;" (assignment_expression "local_30 = local_30 + iVar7 + (uint)bVar9" identifier = (binary_expression "local_30 + iVar7 + (uint)bVar9" (binary_expression "local_30 + iVar7" identifier + identifier) + (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "piVar8 = piVar8 + 6;" (assignment_expression "piVar8 = piVar8 + 6" identifier = (binary_expression "piVar8 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x70) != piVar8)" ( (binary_expression "*(int **)(param_1 + 0x70) != piVar8" (pointer_expression "*(int **)(param_1 + 0x70)" * (cast_expression "(int **)(param_1 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "*(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;" (assignment_expression "*(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb" (pointer_expression "*(byte *)(param_1 + 0x92)" * (cast_expression "(byte *)(param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x92)" ( (binary_expression "param_1 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x92) & 0xfb" (pointer_expression "*(byte *)(param_1 + 0x92)" * (cast_expression "(byte *)(param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x92)" ( (binary_expression "param_1 + 0x92" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression ! IDENT)) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) , (binary_expression IDENT - LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000ef830(int param_1)\n\n{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000ef830(int param_1)" (identifier "FUN_000ef830") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  longlong lVar1;\n  uint uVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  uint uVar6;\n  int iVar7;\n  int *piVar8;\n  bool bVar9;\n  longlong lVar10;\n  uint local_34;\n  uint local_30;\n  uint local_2c;\n  uint local_28;\n  \n  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }\n  return;\n}" ({ "{") (declaration "longlong lVar1;" (type_identifier "longlong") (identifier "lVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "bool bVar9;" (primitive_type "bool") (identifier "bVar9") (; ";")) (declaration "longlong lVar10;" (type_identifier "longlong") (identifier "lVar10") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x92) & 4) != 0) {\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x92) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x92) & 4) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x92) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 0x92) & 4" (pointer_expression "*(byte *)(param_1 + 0x92)" (* "*") (cast_expression "(byte *)(param_1 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x92)" (( "(") (binary_expression "param_1 + 0x92" (identifier "param_1") (+ "+") (number_literal "0x92")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar8 = *(int **)(param_1 + 0x6c);\n    if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }\n    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;\n  }" ({ "{") (expression_statement "piVar8 = *(int **)(param_1 + 0x6c);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x6c)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x6c)" (* "*") (cast_expression "(int **)(param_1 + 0x6c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (if_statement "if (piVar8 != *(int **)(param_1 + 0x70)) {\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }" (if "if") (parenthesized_expression "(piVar8 != *(int **)(param_1 + 0x70))" (( "(") (binary_expression "piVar8 != *(int **)(param_1 + 0x70)" (identifier "piVar8") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x70)" (* "*") (cast_expression "(int **)(param_1 + 0x70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) () ")")) (compound_statement "{\n      local_34 = 0;\n      local_30 = 0;\n      do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);\n    }" ({ "{") (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")) (; ";")) (do_statement "do {\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      } while (*(int **)(param_1 + 0x70) != piVar8);" (do "do") (compound_statement "{\n        uVar2 = *piVar8 + 4;\n        local_28 = local_30;\n        local_2c = local_34;\n        if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }\n        bVar9 = CARRY4(local_34,uVar2);\n        local_34 = local_34 + uVar2;\n        local_30 = local_30 + iVar7 + (uint)bVar9;\n        piVar8 = piVar8 + 6;\n      }" ({ "{") (expression_statement "uVar2 = *piVar8 + 4;" (assignment_expression "uVar2 = *piVar8 + 4" (identifier "uVar2") (= "=") (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" (identifier "local_28") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" (identifier "local_2c") (= "=") (identifier "local_34")) (; ";")) (if_statement "if (piVar8[1] == 0) {\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }\n        else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" (if "if") (parenthesized_expression "(piVar8[1] == 0)" (( "(") (binary_expression "piVar8[1] == 0" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (3 < uVar2) goto LAB_000ef958;\n          piVar3 = (int *)piVar8[4];\n          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }\n          lVar10 = *(longlong *)(piVar3 + 9);\n          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;\nLAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }\n          uVar2 = piVar3[3];\n          iVar7 = piVar3[4];\n        }" ({ "{") (if_statement "if (3 < uVar2) goto LAB_000ef958;" (if "if") (parenthesized_expression "(3 < uVar2)" (( "(") (binary_expression "3 < uVar2" (number_literal "3") (< "<") (identifier "uVar2")) () ")")) (goto_statement "goto LAB_000ef958;" (goto "goto") (statement_identifier "LAB_000ef958") (; ";"))) (expression_statement "piVar3 = (int *)piVar8[4];" (assignment_expression "piVar3 = (int *)piVar8[4]" (identifier "piVar3") (= "=") (cast_expression "(int *)piVar8[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[4]" (identifier "piVar8") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }" (if "if") (parenthesized_expression "(*(code **)(*piVar3 + 0xc) != FUN_000735e0)" (( "(") (binary_expression "*(code **)(*piVar3 + 0xc) != FUN_000735e0" (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (identifier "FUN_000735e0")) () ")")) (compound_statement "{\n            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);\n            uVar2 = *piVar8 + 4;\n            goto LAB_000ef943;\n          }" ({ "{") (expression_statement "lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);" (assignment_expression "lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3)" (identifier "lVar10") (= "=") (call_expression "(**(code **)(*piVar3 + 0xc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xc)" (( "(") (binary_expression "*piVar3 + 0xc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (expression_statement "uVar2 = *piVar8 + 4;" (assignment_expression "uVar2 = *piVar8 + 4" (identifier "uVar2") (= "=") (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "4"))) (; ";")) (goto_statement "goto LAB_000ef943;" (goto "goto") (statement_identifier "LAB_000ef943") (; ";")) (} "}"))) (expression_statement "lVar10 = *(longlong *)(piVar3 + 9);" (assignment_expression "lVar10 = *(longlong *)(piVar3 + 9)" (identifier "lVar10") (= "=") (pointer_expression "*(longlong *)(piVar3 + 9)" (* "*") (cast_expression "(longlong *)(piVar3 + 9)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 9)" (( "(") (binary_expression "piVar3 + 9" (identifier "piVar3") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (if_statement "if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;" (if "if") (parenthesized_expression "(piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0)" (( "(") (binary_expression "piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0" (binary_expression "piVar3[10] != 0" (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(int)*(longlong *)(piVar3 + 9) != 0" (cast_expression "(int)*(longlong *)(piVar3 + 9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(longlong *)(piVar3 + 9)" (* "*") (cast_expression "(longlong *)(piVar3 + 9)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 9)" (( "(") (binary_expression "piVar3 + 9" (identifier "piVar3") (+ "+") (number_literal "9")) () ")"))))) (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_000ef8a7;" (goto "goto") (statement_identifier "LAB_000ef8a7") (; ";"))) (labeled_statement "LAB_000ef8e6:\n          if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }" (statement_identifier "LAB_000ef8e6") (: ":") (if_statement "if ((*(byte *)(piVar3 + 7) & 2) == 0) {\n                    \n            FUN_000ecb60();\n          }" (if "if") (parenthesized_expression "((*(byte *)(piVar3 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(piVar3 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar3 + 7) & 2)" (( "(") (binary_expression "*(byte *)(piVar3 + 7) & 2" (pointer_expression "*(byte *)(piVar3 + 7)" (* "*") (cast_expression "(byte *)(piVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 7)" (( "(") (binary_expression "piVar3 + 7" (identifier "piVar3") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000ecb60();\n          }" ({ "{") (expression_statement "FUN_000ecb60();" (call_expression "FUN_000ecb60()" (identifier "FUN_000ecb60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar2 = piVar3[3];" (assignment_expression "uVar2 = piVar3[3]" (identifier "uVar2") (= "=") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar3[4];" (assignment_expression "iVar7 = piVar3[4]" (identifier "iVar7") (= "=") (subscript_expression "piVar3[4]" (identifier "piVar3") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" (else "else") (compound_statement "{\n          uVar6 = piVar8[1] - 1;\n          bVar5 = (byte)uVar6;\n          bVar9 = (uVar6 & 0x20) == 0;\n          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));\nLAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }\n          if (uVar2 < 4) goto LAB_000ef8e3;\nLAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);\n          uVar4 = FUN_000edef0(piVar8);\n          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);\n          local_34 = local_2c;\n          local_30 = local_28;\n          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;\n          uVar2 = piVar8[2];\n          iVar7 = piVar8[3];\n        }" ({ "{") (expression_statement "uVar6 = piVar8[1] - 1;" (assignment_expression "uVar6 = piVar8[1] - 1" (identifier "uVar6") (= "=") (binary_expression "piVar8[1] - 1" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = (byte)uVar6;" (assignment_expression "bVar5 = (byte)uVar6" (identifier "bVar5") (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "bVar9 = (uVar6 & 0x20) == 0;" (assignment_expression "bVar9 = (uVar6 & 0x20) == 0" (identifier "bVar9") (= "=") (binary_expression "(uVar6 & 0x20) == 0" (parenthesized_expression "(uVar6 & 0x20)" (( "(") (binary_expression "uVar6 & 0x20" (identifier "uVar6") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0"))) (; ";")) (expression_statement "lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));" (assignment_expression "lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" (identifier "lVar10") (= "=") (call_expression "CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" (identifier "CONCAT44") (argument_list "((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f))" (( "(") (binary_expression "(uint)!bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)!bVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (unary_expression "!bVar9" (! "!") (identifier "bVar9"))) (<< "<<") (parenthesized_expression "(bVar5 & 0x1f)" (( "(") (binary_expression "bVar5 & 0x1f" (identifier "bVar5") (& "&") (number_literal "0x1f")) () ")"))) (, ",") (binary_expression "(uint)bVar9 << (bVar5 & 0x1f)" (cast_expression "(uint)bVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar9")) (<< "<<") (parenthesized_expression "(bVar5 & 0x1f)" (( "(") (binary_expression "bVar5 & 0x1f" (identifier "bVar5") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (labeled_statement "LAB_000ef943:\n          if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" (statement_identifier "LAB_000ef943") (: ":") (if_statement "if (lVar10 != 0) {\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" (if "if") (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);\n            local_34 = (uint)lVar1 & -(int)lVar10;\n            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));\n            local_2c = local_34;\n            local_28 = local_30;\n            if (3 < uVar2) goto LAB_000ef958;\nLAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];\n            goto LAB_000ef8e6;\n          }" ({ "{") (labeled_statement "LAB_000ef8a7:\n            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);" (statement_identifier "LAB_000ef8a7") (: ":") (expression_statement "lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);" (assignment_expression "lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" (identifier "lVar1") (= "=") (binary_expression "lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" (identifier "lVar10") (+ "+") (call_expression "CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" (identifier "CONCAT44") (argument_list "((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1)" (( "(") (binary_expression "(local_30 - 1) + (uint)(local_34 != 0)" (parenthesized_expression "(local_30 - 1)" (( "(") (binary_expression "local_30 - 1" (identifier "local_30") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(local_34 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")))) (, ",") (binary_expression "local_34 - 1" (identifier "local_34") (- "-") (number_literal "1")) () ")"))))) (; ";"))) (expression_statement "local_34 = (uint)lVar1 & -(int)lVar10;" (assignment_expression "local_34 = (uint)lVar1 & -(int)lVar10" (identifier "local_34") (= "=") (binary_expression "(uint)lVar1 & -(int)lVar10" (cast_expression "(uint)lVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar1")) (& "&") (unary_expression "-(int)lVar10" (- "-") (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10"))))) (; ";")) (expression_statement "local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));" (assignment_expression "local_30 = (uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" (identifier "local_30") (= "=") (binary_expression "(uint)((ulonglong)lVar1 >> 0x20) &\n                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" (call_expression "(uint)((ulonglong)lVar1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar1 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar1")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" (- "-") (parenthesized_expression "((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0))" (( "(") (binary_expression "(int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0)" (cast_expression "(int)((ulonglong)lVar10 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar10 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar10 >> 0x20" (cast_expression "(ulonglong)lVar10" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar10")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (call_expression "(uint)((int)lVar10 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)lVar10 != 0)" (( "(") (binary_expression "(int)lVar10 != 0" (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10")) (!= "!=") (number_literal "0")) () ")")))) () ")"))))) (; ";")) (expression_statement "local_2c = local_34;" (assignment_expression "local_2c = local_34" (identifier "local_2c") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" (identifier "local_28") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (3 < uVar2) goto LAB_000ef958;" (if "if") (parenthesized_expression "(3 < uVar2)" (( "(") (binary_expression "3 < uVar2" (number_literal "3") (< "<") (identifier "uVar2")) () ")")) (goto_statement "goto LAB_000ef958;" (goto "goto") (statement_identifier "LAB_000ef958") (; ";"))) (labeled_statement "LAB_000ef8e3:\n            piVar3 = (int *)piVar8[4];" (statement_identifier "LAB_000ef8e3") (: ":") (expression_statement "piVar3 = (int *)piVar8[4];" (assignment_expression "piVar3 = (int *)piVar8[4]" (identifier "piVar3") (= "=") (cast_expression "(int *)piVar8[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[4]" (identifier "piVar8") ([ "[") (number_literal "4") (] "]")))) (; ";"))) (goto_statement "goto LAB_000ef8e6;" (goto "goto") (statement_identifier "LAB_000ef8e6") (; ";")) (} "}")))) (if_statement "if (uVar2 < 4) goto LAB_000ef8e3;" (if "if") (parenthesized_expression "(uVar2 < 4)" (( "(") (binary_expression "uVar2 < 4" (identifier "uVar2") (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_000ef8e3;" (goto "goto") (statement_identifier "LAB_000ef8e3") (; ";"))) (labeled_statement "LAB_000ef958:\n          piVar3 = (int *)FUN_000ede60(piVar8);" (statement_identifier "LAB_000ef958") (: ":") (expression_statement "piVar3 = (int *)FUN_000ede60(piVar8);" (assignment_expression "piVar3 = (int *)FUN_000ede60(piVar8)" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_000ede60(piVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ede60(piVar8)" (identifier "FUN_000ede60") (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")"))))) (; ";"))) (expression_statement "uVar4 = FUN_000edef0(piVar8);" (assignment_expression "uVar4 = FUN_000edef0(piVar8)" (identifier "uVar4") (= "=") (call_expression "FUN_000edef0(piVar8)" (identifier "FUN_000edef0") (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")")))) (; ";")) (expression_statement "(**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);" (call_expression "(**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28)" (parenthesized_expression "(**(code **)(*piVar3 + 0xdc))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xdc)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xdc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xdc)" (( "(") (binary_expression "*piVar3 + 0xdc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xdc")) () ")"))))) () ")")) (argument_list "(piVar3,uVar4,local_2c,local_28)" (( "(") (identifier "piVar3") (, ",") (identifier "uVar4") (, ",") (identifier "local_2c") (, ",") (identifier "local_28") () ")"))) (; ";")) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" (identifier "local_34") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "local_30 = local_28;" (assignment_expression "local_30 = local_28" (identifier "local_30") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (*piVar8 + 4U < 4) goto LAB_000ef8e3;" (if "if") (parenthesized_expression "(*piVar8 + 4U < 4)" (( "(") (binary_expression "*piVar8 + 4U < 4" (binary_expression "*piVar8 + 4U" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "4U")) (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_000ef8e3;" (goto "goto") (statement_identifier "LAB_000ef8e3") (; ";"))) (expression_statement "uVar2 = piVar8[2];" (assignment_expression "uVar2 = piVar8[2]" (identifier "uVar2") (= "=") (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")))) (expression_statement "bVar9 = CARRY4(local_34,uVar2);" (assignment_expression "bVar9 = CARRY4(local_34,uVar2)" (identifier "bVar9") (= "=") (call_expression "CARRY4(local_34,uVar2)" (identifier "CARRY4") (argument_list "(local_34,uVar2)" (( "(") (identifier "local_34") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "local_34 = local_34 + uVar2;" (assignment_expression "local_34 = local_34 + uVar2" (identifier "local_34") (= "=") (binary_expression "local_34 + uVar2" (identifier "local_34") (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "local_30 = local_30 + iVar7 + (uint)bVar9;" (assignment_expression "local_30 = local_30 + iVar7 + (uint)bVar9" (identifier "local_30") (= "=") (binary_expression "local_30 + iVar7 + (uint)bVar9" (binary_expression "local_30 + iVar7" (identifier "local_30") (+ "+") (identifier "iVar7")) (+ "+") (cast_expression "(uint)bVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar9")))) (; ";")) (expression_statement "piVar8 = piVar8 + 6;" (assignment_expression "piVar8 = piVar8 + 6" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 6" (identifier "piVar8") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x70) != piVar8)" (( "(") (binary_expression "*(int **)(param_1 + 0x70) != piVar8" (pointer_expression "*(int **)(param_1 + 0x70)" (* "*") (cast_expression "(int **)(param_1 + 0x70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (!= "!=") (identifier "piVar8")) () ")")) (; ";")) (} "}"))) (expression_statement "*(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;" (assignment_expression "*(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb" (pointer_expression "*(byte *)(param_1 + 0x92)" (* "*") (cast_expression "(byte *)(param_1 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x92)" (( "(") (binary_expression "param_1 + 0x92" (identifier "param_1") (+ "+") (number_literal "0x92")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 0x92) & 0xfb" (pointer_expression "*(byte *)(param_1 + 0x92)" (* "*") (cast_expression "(byte *)(param_1 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x92)" (( "(") (binary_expression "param_1 + 0x92" (identifier "param_1") (+ "+") (number_literal "0x92")) () ")")))) (& "&") (number_literal "0xfb"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void adjust_section_offsets(Output_section * this) */

void __thiscall gold::type_1::function_1(type_1 *this)

{
  type_2 *var_3;
  type_3 var_6;
  type_4 *pRVar3;
  type_3 var_2;
  type_5 var_8;
  type_3 var_5;
  int var_15;
  type_3 extraout_EDX;
  type_6 *var_16;
  type_3 var_10;
  bool bVar9;
  type_6 *in_stack_ffffffc4;
  type_3 var_9;
  type_3 var_11;
  type_3 local_2c;
  type_3 local_28;
  
  if ((this->field_0x92 & 4) != 0) {
    var_16 = (this->input_sections_).
              super__Vector_base<gold::Output_section::type_6,_std::allocator<gold::Output_section::type_6>var_1>
              ._M_impl._M_start;
    if (var_16 !=
        (this->input_sections_).
        super__Vector_base<gold::type_1::type_6,_std::allocator<gold::type_1::type_6>var_1>
        ._M_impl._M_finish) {
      var_9 = 0;
      var_11 = 0;
      do {
        var_2 = var_16->shndx_ + 4;
        local_28 = var_11;
        local_2c = var_9;
        if (var_16->p2align_ == 0) {
          if (3 < var_2) goto LAB_000ef958;
          pRVar3 = (var_16->u2_).object;
          var_3 = (pRVar3->super_Object)._vptr_Object[3];
          if (var_3 != var_4::do_addralign) {
            var_6 = (*var_3)(pRVar3);
            var_2 = var_16->shndx_ + 4;
            var_5 = extraout_EDX;
            goto LAB_000ef943;
          }
          var_5 = (pRVar3->super_Object).shnum_;
          var_6 = *(type_3 *)((int)&(pRVar3->super_Object).offset_ + 4);
          if (var_5 != 0 || var_6 != 0) goto LAB_000ef8a7;
LAB_000ef8e6:
          if (((type_3)(pRVar3->super_Object).input_file_ & 2) == 0) {
                    /* WARNING: Subroutine does not return */
            Input_section::var_7(in_stack_ffffffc4);
          }
          var_2 = (pRVar3->super_Object).name_.field_2._M_allocated_capacity;
          var_15 = *(int *)((int)&(pRVar3->super_Object).name_.field_2 + 4);
        }
        else {
          var_5 = var_16->p2align_ - 1;
          var_8 = (type_5)var_5;
          bVar9 = (var_5 & 0x20) == 0;
          var_5 = (type_3)!bVar9 << (var_8 & 0x1f);
          var_6 = (type_3)bVar9 << (var_8 & 0x1f);
LAB_000ef943:
          if (var_5 != 0 || var_6 != 0) {
LAB_000ef8a7:
            bVar9 = var_9 != 0;
            var_10 = var_9 - 1;
            var_9 = var_10 + var_6 & -var_6;
            var_11 = (var_11 - 1) + (type_3)bVar9 + var_5 + (type_3)var_12(var_10,var_6) &
                       -(var_5 + (var_6 != 0));
            local_2c = var_9;
            local_28 = var_11;
            if (3 < var_2) goto LAB_000ef958;
LAB_000ef8e3:
            pRVar3 = (var_16->u2_).object;
            goto LAB_000ef8e6;
          }
          if (var_2 < 4) goto LAB_000ef8e3;
LAB_000ef958:
          pRVar3 = type_6::var_13(var_16);
          var_2 = type_6::var_14(var_16);
          (*(pRVar3->super_Object)._vptr_Object[0x37])(pRVar3,var_2,local_2c,local_28);
          var_9 = local_2c;
          var_11 = local_28;
          if (var_16->shndx_ + 4 < 4) goto LAB_000ef8e3;
          var_2 = *(type_3 *)&var_16->u1_;
          var_15 = *(int *)((int)&var_16->u1_ + 4);
        }
        bVar9 = var_12(var_9,var_2);
        var_9 = var_9 + var_2;
        var_11 = var_11 + var_15 + (type_3)bVar9;
        var_16 = var_16 + 1;
      } while ((this->input_sections_).
               super__Vector_base<gold::type_1::type_6,_std::allocator<gold::type_1::type_6>var_1>
               ._M_impl._M_finish != var_16);
    }
    this->field_0x92 = this->field_0x92 & 0xfb;
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int param_1)

{
  longlong lVar1;
  uint uVar2;
  int *piVar3;
  undefined4 uVar4;
  byte bVar5;
  uint uVar6;
  int iVar7;
  int *piVar8;
  bool bVar9;
  longlong lVar10;
  uint local_34;
  uint local_30;
  uint local_2c;
  uint local_28;
  
  if ((*(byte *)(param_1 + 0x92) & 4) != 0) {
    piVar8 = *(int **)(param_1 + 0x6c);
    if (piVar8 != *(int **)(param_1 + 0x70)) {
      local_34 = 0;
      local_30 = 0;
      do {
        uVar2 = *piVar8 + 4;
        local_28 = local_30;
        local_2c = local_34;
        if (piVar8[1] == 0) {
          if (3 < uVar2) goto LAB_000ef958;
          piVar3 = (int *)piVar8[4];
          if (*(code **)(*piVar3 + 0xc) != FUN_000735e0) {
            lVar10 = (**(code **)(*piVar3 + 0xc))(piVar3);
            uVar2 = *piVar8 + 4;
            goto LAB_000ef943;
          }
          lVar10 = *(longlong *)(piVar3 + 9);
          if (piVar3[10] != 0 || (int)*(longlong *)(piVar3 + 9) != 0) goto LAB_000ef8a7;
LAB_000ef8e6:
          if ((*(byte *)(piVar3 + 7) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000ecb60();
          }
          uVar2 = piVar3[3];
          iVar7 = piVar3[4];
        }
        else {
          uVar6 = piVar8[1] - 1;
          bVar5 = (byte)uVar6;
          bVar9 = (uVar6 & 0x20) == 0;
          lVar10 = CONCAT44((uint)!bVar9 << (bVar5 & 0x1f),(uint)bVar9 << (bVar5 & 0x1f));
LAB_000ef943:
          if (lVar10 != 0) {
LAB_000ef8a7:
            lVar1 = lVar10 + CONCAT44((local_30 - 1) + (uint)(local_34 != 0),local_34 - 1);
            local_34 = (uint)lVar1 & -(int)lVar10;
            local_30 = (uint)((ulonglong)lVar1 >> 0x20) &
                       -((int)((ulonglong)lVar10 >> 0x20) + (uint)((int)lVar10 != 0));
            local_2c = local_34;
            local_28 = local_30;
            if (3 < uVar2) goto LAB_000ef958;
LAB_000ef8e3:
            piVar3 = (int *)piVar8[4];
            goto LAB_000ef8e6;
          }
          if (uVar2 < 4) goto LAB_000ef8e3;
LAB_000ef958:
          piVar3 = (int *)FUN_000ede60(piVar8);
          uVar4 = FUN_000edef0(piVar8);
          (**(code **)(*piVar3 + 0xdc))(piVar3,uVar4,local_2c,local_28);
          local_34 = local_2c;
          local_30 = local_28;
          if (*piVar8 + 4U < 4) goto LAB_000ef8e3;
          uVar2 = piVar8[2];
          iVar7 = piVar8[3];
        }
        bVar9 = CARRY4(local_34,uVar2);
        local_34 = local_34 + uVar2;
        local_30 = local_30 + iVar7 + (uint)bVar9;
        piVar8 = piVar8 + 6;
      } while (*(int **)(param_1 + 0x70) != piVar8);
    }
    *(byte *)(param_1 + 0x92) = *(byte *)(param_1 + 0x92) & 0xfb;
  }
  return;
}

