
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: off_t set_section_offsets(Layout * this, off_t off, Section_offset_pass
   pass) */

off_t __thiscall gold::Layout::set_section_offsets(Layout *this,off_t off,Section_offset_pass pass)

{
  off_t *poVar1;
  int *piVar2;
  byte bVar3;
  _func_int_varargs *p_Var4;
  Errors *this_00;
  off_t len;
  longlong lVar5;
  off_t oVar6;
  bool bVar7;
  int iVar8;
  Output_section *pOVar9;
  char *pcVar10;
  _func_int_varargs **pp_Var11;
  undefined4 uVar12;
  int extraout_EDX;
  undefined4 extraout_EDX_00;
  Output_section *pOVar13;
  pointer ppOVar14;
  uint uVar15;
  char *pcVar16;
  int iVar17;
  longlong lVar18;
  uint local_44;
  int local_40;
  int local_3c;
  int local_38;
  
  ppOVar14 = (this->unattached_section_list_).
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_start;
  lVar5 = off;
  if (ppOVar14 !=
      (this->unattached_section_list_).
      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
      _M_finish) {
    lVar18 = off;
    do {
      local_40 = (int)((ulonglong)lVar5 >> 0x20);
      local_44 = (uint)lVar5;
      pOVar9 = *ppOVar14;
      if ((pOVar9 != this->symtab_section_) &&
         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))
      {
        if (pass == BEFORE_INPUT_SECTIONS_PASS) {
          if ((pOVar9->field_0x90 & 0x20) != 0) {
            Output_section::create_postprocessing_buffer(pOVar9);
            this->any_postprocessing_sections_ = true;
            pOVar9 = *ppOVar14;
          }
          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;
        }
        else if (pass == POSTPROCESSING_SECTIONS_PASS) {
          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {
LAB_00272e42:
            bVar7 = Parameters::incremental_update(parameters);
            if (bVar7) {
              pOVar9 = *ppOVar14;
              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;
              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {
                (*pp_Var11[0xd])(pOVar9);
                pOVar9 = *ppOVar14;
                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;
              }
              poVar1 = &(pOVar9->super_Output_data).data_size_;
              oVar6 = *poVar1;
              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);
              len = *poVar1;
              if (pp_Var11[3] == Output_section::do_addralign) {
                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);
                iVar8 = (int)pOVar9->addralign_;
              }
              else {
                iVar8 = (*pp_Var11[3])(pOVar9);
                uVar12 = extraout_EDX_00;
              }
              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);
              if (lVar18 == -1) {
                if ((parameters->options_ != (General_options *)0x0) &&
                   ((parameters->debug_ & 0x10) != 0)) {
                  Free_list::dump(&this->free_list_);
                }
                pOVar9 = *ppOVar14;
                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];
                if (p_Var4 != Output_section::do_output_section) {
                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);
                }
                if (pOVar9 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");
                }
                pOVar9 = *ppOVar14;
                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];
                if (p_Var4 != Output_section::do_output_section) {
                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);
                }
                pcVar16 = pOVar9->name_;
                pcVar10 = "out of patch space for section %s; relink with --incremental-full";
LAB_0027321b:
                pcVar10 = (char *)gettext(pcVar10);
                    /* WARNING: Subroutine does not return */
                gold_fallback(pcVar10,pcVar16);
              }
              pOVar9 = *ppOVar14;
              bVar3 = (pOVar9->super_Output_data).field_0x1c;
              if ((bVar3 & 4) != 0) goto LAB_00273315;
              (pOVar9->super_Output_data).offset_ = lVar18;
              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;
              if ((bVar3 & 2) == 0) {
                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);
                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;
                pOVar9 = *ppOVar14;
                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;
              }
              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);
              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);
              iVar8 = iVar17 - *piVar2;
              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)
              {
                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];
                if ((p_Var4 != Output_section::do_output_section) &&
                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");
                }
                pOVar9 = *ppOVar14;
                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];
                if (p_Var4 != Output_section::do_output_section) {
                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);
                }
                pcVar16 = pOVar9->name_;
                pcVar10 = "%s: section changed size; relink with --incremental-full";
                goto LAB_0027321b;
              }
              if ((parameters->options_ == (General_options *)0x0) ||
                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;
              this_00 = parameters->errors_;
              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];
              if (p_Var4 == Output_section::do_output_section) {
LAB_002730dc:
                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];
                pOVar13 = pOVar9;
                if (p_Var4 != Output_section::do_output_section) {
                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);
                  pOVar13 = *ppOVar14;
                }
                pcVar10 = pOVar9->name_;
              }
              else {
                iVar17 = (*p_Var4)(pOVar9);
                pOVar13 = *ppOVar14;
                pOVar9 = pOVar13;
                if (iVar17 != 0) goto LAB_002730dc;
                pcVar10 = "(special)";
              }
              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;
              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,
                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);
LAB_00272f02:
              pOVar9 = *ppOVar14;
              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {
LAB_002732f6:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
              }
            }
            else {
              pOVar9 = *ppOVar14;
              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];
              if (p_Var4 == Output_section::do_addralign) {
                local_3c = (int)pOVar9->addralign_;
                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);
              }
              else {
                local_3c = (*p_Var4)(pOVar9);
                pOVar9 = *ppOVar14;
                local_38 = extraout_EDX;
              }
              if (local_38 != 0 || local_3c != 0) {
                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);
                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &
                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);
              }
              bVar3 = (pOVar9->super_Output_data).field_0x1c;
              if ((bVar3 & 4) != 0) {
LAB_00273315:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");
              }
              (pOVar9->super_Output_data).offset_ = lVar18;
              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;
              if ((bVar3 & 2) == 0) {
                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);
                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {
LAB_00273334:
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");
                }
                goto LAB_00272f02;
              }
            }
LAB_00272f0f:
            poVar1 = &(pOVar9->super_Output_data).data_size_;
            uVar15 = (uint)lVar18 + (int)*poVar1;
            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +
                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +
                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);
            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))
                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {
              lVar5 = CONCAT44(iVar17,uVar15);
            }
            lVar18 = CONCAT44(iVar17,uVar15);
            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {
              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);
              lVar18 = CONCAT44(iVar17,uVar15);
            }
          }
        }
        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||
                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;
      }
      ppOVar14 = ppOVar14 + 1;
    } while ((this->unattached_section_list_).
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_finish != ppOVar14);
  }
  return lVar5;
}



undefined8 FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)

{
  byte bVar1;
  undefined4 *puVar2;
  char cVar3;
  int iVar4;
  int *piVar5;
  undefined4 uVar6;
  int *piVar7;
  int *piVar8;
  uint uVar9;
  uint uVar10;
  int *piVar11;
  int unaff_EBP;
  int iVar12;
  longlong lVar13;
  undefined8 uVar14;
  uint local_44;
  uint local_40;
  int local_3c;
  int local_38;
  
  FUN_00074f0e();
  piVar8 = *(int **)(param_1 + 0x13c);
  if (piVar8 == *(int **)(param_1 + 0x140)) {
    local_44 = param_2;
    local_40 = param_3;
  }
  else {
    piVar7 = (int *)(unaff_EBP + 0x377a02);
    local_44 = param_2;
    local_40 = param_3;
    uVar9 = param_2;
    uVar10 = param_3;
    do {
      iVar4 = *piVar8;
      if ((iVar4 != *(int *)(param_1 + 0x174)) &&
         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {
        if (param_4 == 0) {
          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {
            FUN_002c7390(iVar4);
            *(undefined1 *)(param_1 + 0x1ca) = 1;
            iVar4 = *piVar8;
          }
          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;
        }
        else if (param_4 == 1) {
          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {
LAB_00272e42:
            cVar3 = FUN_0030aff0(*piVar7);
            if (cVar3 == '\0') {
              piVar5 = (int *)*piVar8;
              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {
                lVar13 = *(longlong *)(piVar5 + 9);
              }
              else {
                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);
                piVar5 = (int *)*piVar8;
              }
              local_38 = (int)((ulonglong)lVar13 >> 0x20);
              local_3c = (int)lVar13;
              if (lVar13 != 0) {
                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);
                uVar9 = (uint)lVar13 & -local_3c;
                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));
              }
              lVar13 = CONCAT44(uVar10,uVar9);
              bVar1 = *(byte *)(piVar5 + 7);
              if ((bVar1 & 4) != 0) {
LAB_00273315:
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);
              }
              piVar5[5] = uVar9;
              piVar5[6] = uVar10;
              *(byte *)(piVar5 + 7) = bVar1 | 4;
              if ((bVar1 & 2) == 0) {
                (**(code **)(*piVar5 + 0x38))(piVar5);
                if ((*(byte *)(piVar5 + 7) & 2) == 0) {
LAB_00273334:
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);
                }
                goto LAB_00272f02;
              }
            }
            else {
              piVar5 = (int *)*piVar8;
              iVar4 = *piVar5;
              if ((*(byte *)(piVar5 + 7) & 2) == 0) {
                (**(code **)(iVar4 + 0x34))(piVar5);
                piVar5 = (int *)*piVar8;
                iVar4 = *piVar5;
              }
              uVar9 = piVar5[3];
              iVar12 = piVar5[4];
              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {
                uVar14 = *(undefined8 *)(piVar5 + 9);
              }
              else {
                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);
              }
              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);
              if (lVar13 == -1) {
                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {
                  FUN_002712d0(param_1 + 0x248);
                }
                piVar7 = (int *)*piVar8;
                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);
                }
                if (piVar7 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);
                }
                piVar8 = (int *)*piVar8;
                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);
                }
                iVar12 = piVar8[8];
                iVar4 = unaff_EBP + 0x2178da;
LAB_0027321b:
                uVar6 = gettext(iVar4);
                    /* WARNING: Subroutine does not return */
                FUN_0023b7e0(uVar6,iVar12);
              }
              piVar5 = (int *)*piVar8;
              bVar1 = *(byte *)(piVar5 + 7);
              if ((bVar1 & 4) != 0) goto LAB_00273315;
              *(longlong *)(piVar5 + 5) = lVar13;
              *(byte *)(piVar5 + 7) = bVar1 | 4;
              if ((bVar1 & 2) == 0) {
                (**(code **)(*piVar5 + 0x38))(piVar5);
                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;
                piVar5 = (int *)*piVar8;
                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;
              }
              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);
              iVar4 = iVar12 - piVar5[4];
              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)
              {
                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&
                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);
                }
                piVar8 = (int *)*piVar8;
                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);
                }
                iVar12 = piVar8[8];
                iVar4 = unaff_EBP + 0x21791e;
                goto LAB_0027321b;
              }
              puVar2 = (undefined4 *)*piVar7;
              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;
              uVar6 = *puVar2;
              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {
LAB_002730dc:
                piVar11 = piVar5;
                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);
                  piVar11 = (int *)*piVar8;
                }
                iVar4 = piVar5[8];
              }
              else {
                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);
                piVar11 = (int *)*piVar8;
                piVar5 = piVar11;
                if (iVar4 != 0) goto LAB_002730dc;
                iVar4 = unaff_EBP + 0x217273;
              }
              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;
              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);
LAB_00272f02:
              piVar5 = (int *)*piVar8;
              if ((*(byte *)(piVar5 + 7) & 2) == 0) {
LAB_002732f6:
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);
              }
            }
LAB_00272f0f:
            uVar9 = (uint)lVar13 + piVar5[3];
            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +
                     (uint)CARRY4((uint)lVar13,piVar5[3]);
            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))
                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {
              local_40 = uVar10;
              local_44 = uVar9;
            }
            if (param_4 != 2) {
              FUN_00349de0(param_1 + 8,piVar5[8],0,0);
            }
          }
        }
        else if ((param_4 != 2) ||
                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))
        goto LAB_00272e42;
      }
      piVar8 = piVar8 + 1;
    } while (*(int **)(param_1 + 0x140) != piVar8);
  }
  return CONCAT44(local_40,local_44);
}


PUSH EBP
CALL 0x00074f0e
ADD EBP,0x37723a
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
MOV EDI,dword ptr [ESP + 0x50]
MOV ECX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x4],EBP
MOV EBX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x20],ECX
MOV EAX,dword ptr [EDI + 0x13c]
MOV dword ptr [ESP + 0x24],EBX
CMP EAX,dword ptr [EDI + 0x140]
JZ 0x002731ab
MOV EDX,EBX
LEA EBX,[EBP + 0x7c8]
MOV ESI,EAX
MOV dword ptr [ESP + 0x8],ECX
MOV EBP,ESI
MOV dword ptr [ESP + 0xc],EDX
MOV ESI,ECX
MOV dword ptr [ESP + 0x28],EBX
LEA EBX,[EDI + 0x8]
MOV EDI,EDX
MOV dword ptr [ESP + 0x2c],EBX
JMP 0x00272f63
TEST byte ptr [EAX + 0x90],0x20
JNZ 0x00273120
TEST byte ptr [EAX + 0x90],0x10
JNZ 0x00272f50
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x34]
PUSH dword ptr [EAX]
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x0030aff0
ADD ESP,0x10
TEST AL,AL
JNZ 0x00272fd0
MOV EBX,dword ptr [EBP]
MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EBX]
LEA EDX,[EDX + 0xffb17830]
MOV EAX,dword ptr [EAX + 0xc]
CMP EAX,EDX
JNZ 0x00273148
MOV EAX,dword ptr [EBX + 0x24]
MOV EDX,dword ptr [EBX + 0x28]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDX
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
MOV ECX,EAX
MOV EAX,EDX
OR EAX,ECX
JZ 0x00272ed0
MOV EAX,ESI
MOV EDX,EDI
ADD EAX,-0x1
ADC EDX,-0x1
ADD EAX,dword ptr [ESP + 0x10]
ADC EDX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x1c],EDX
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x14]
NEG EAX
ADC EDX,0x0
AND ECX,EAX
MOV ESI,ECX
MOV ECX,dword ptr [ESP + 0x1c]
NEG EDX
AND ECX,EDX
MOV EDI,ECX
MOVZX EAX,byte ptr [EBX + 0x1c]
TEST AL,0x4
JNZ 0x00273315
OR EAX,0x4
MOV dword ptr [EBX + 0x14],ESI
MOV dword ptr [EBX + 0x18],EDI
MOV byte ptr [EBX + 0x1c],AL
TEST AL,0x2
JNZ 0x00272f0f
SUB ESP,0xc
MOV EAX,dword ptr [EBX]
PUSH EBX
CALL dword ptr [EAX + 0x38]
ADD ESP,0x10
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x00273334
MOV EBX,dword ptr [EBP]
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x002732f6
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
ADD ESI,dword ptr [EBX + 0xc]
ADC EDI,dword ptr [EBX + 0x10]
MOV EDX,ECX
CMP EAX,ESI
SBB EDX,EDI
CMOVL EAX,ESI
CMOVL ECX,EDI
CMP dword ptr [ESP + 0x5c],0x2
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],ECX
JZ 0x00272f50
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBX + 0x20]
PUSH dword ptr [ESP + 0x38]
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00349de0
ADD ESP,0x10
NOP
MOV EAX,dword ptr [ESP + 0x50]
ADD EBP,0x4
CMP dword ptr [EAX + 0x140],EBP
JZ 0x002731bb
MOV ECX,dword ptr [ESP + 0x50]
MOV EAX,dword ptr [EBP]
CMP EAX,dword ptr [ECX + 0x174]
JZ 0x00272f50
MOVZX EDX,byte ptr [EAX + 0x1c]
TEST DL,0x4
JZ 0x00272f80
AND EDX,0x2
JNZ 0x00272f50
MOV EDX,dword ptr [ESP + 0x5c]
TEST EDX,EDX
JZ 0x00272e28
CMP dword ptr [ESP + 0x5c],0x1
JNZ 0x00272fb0
TEST byte ptr [EAX + 0x90],0x10
JZ 0x00272f50
CMP dword ptr [EAX + 0x50],0x3
JNZ 0x00272e42
JMP 0x00272f50
CMP dword ptr [ESP + 0x5c],0x2
JNZ 0x00272e42
TEST byte ptr [EAX + 0x90],0x10
JZ 0x00272f50
CMP dword ptr [EAX + 0x50],0x3
JZ 0x00272e42
JMP 0x00272f50
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [EAX]
TEST byte ptr [EAX + 0x1c],0x2
JNZ 0x00272fea
SUB ESP,0xc
PUSH EAX
CALL dword ptr [EDX + 0x34]
MOV EAX,dword ptr [EBP]
MOV EDX,dword ptr [EAX]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0xc]
MOV EDI,dword ptr [ESP + 0x4]
MOV EBX,dword ptr [EAX + 0x10]
MOV EDX,dword ptr [EDX + 0xc]
MOV dword ptr [ESP + 0x10],ECX
LEA ECX,[EDI + 0xffb17830]
MOV dword ptr [ESP + 0x14],EBX
CMP EDX,ECX
JNZ 0x00273168
MOV EDX,dword ptr [EAX + 0x28]
MOV EAX,dword ptr [EAX + 0x24]
MOV EDI,dword ptr [ESP + 0x50]
SUB ESP,0x4
PUSH dword ptr [ESP + 0x28]
LEA EBX,[EDI + 0x248]
PUSH dword ptr [ESP + 0x28]
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x28]
PUSH EBX
CALL 0x00270e00
ADD ESP,0x20
MOV ESI,EAX
MOV EAX,EDX
MOV EDI,EDX
AND EAX,ESI
CMP EAX,-0x1
JZ 0x0027322c
MOV EBX,dword ptr [EBP]
MOVZX EAX,byte ptr [EBX + 0x1c]
TEST AL,0x4
JNZ 0x00273315
OR EAX,0x4
MOV dword ptr [EBX + 0x14],ESI
MOV dword ptr [EBX + 0x18],EDX
MOV byte ptr [EBX + 0x1c],AL
TEST AL,0x2
JNZ 0x0027308e
SUB ESP,0xc
MOV EAX,dword ptr [EBX]
PUSH EBX
CALL dword ptr [EAX + 0x38]
ADD ESP,0x10
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x00273334
MOV EBX,dword ptr [EBP]
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x002732f6
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESP + 0x10]
CMP EAX,dword ptr [EBX + 0xc]
MOV EAX,EDX
SBB EAX,dword ptr [EBX + 0x10]
JL 0x002731e1
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x00272f0f
TEST byte ptr [EAX + 0x14],0x10
JZ 0x00272f0f
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX]
LEA ECX,[EDX + 0xffb5a090]
MOV EAX,dword ptr [EAX + 0x24]
CMP EAX,ECX
JNZ 0x00273180
MOV EDX,dword ptr [EBX]
MOV EAX,EBX
MOV EDX,dword ptr [EDX + 0x24]
CMP EDX,ECX
JNZ 0x002731d0
MOV EAX,dword ptr [EAX + 0x20]
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x002732f6
SUB ESP,0xc
PUSH EAX
PUSH dword ptr [EBX + 0xc]
PUSH ESI
MOV EBX,dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xffea0720]
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x0023b750
ADD ESP,0x20
JMP 0x00272f02
SUB ESP,0xc
PUSH EAX
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x002c7390
MOV EAX,dword ptr [ESP + 0x60]
ADD ESP,0x10
MOV byte ptr [EAX + 0x1ca],0x1
MOV EAX,dword ptr [EBP]
JMP 0x00272e35
SUB ESP,0xc
PUSH EBX
CALL EAX
MOV EBX,dword ptr [EBP]
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x24],EDX
ADD ESP,0x10
JMP 0x00272e87
SUB ESP,0xc
PUSH EAX
CALL EDX
ADD ESP,0x10
JMP 0x00273013
MOV dword ptr [ESP + 0x18],ECX
SUB ESP,0xc
PUSH EBX
CALL EAX
MOV EBX,dword ptr [EBP]
MOV ECX,dword ptr [ESP + 0x28]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x002730dc
MOV EAX,dword ptr [ESP + 0x4]
LEA EAX,[EAX + 0xffea0039]
JMP 0x002730ee
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH EBX
CALL EDX
MOV EBX,dword ptr [EBP]
ADD ESP,0x10
JMP 0x002730eb
MOV EAX,dword ptr [EBX]
MOV EDI,dword ptr [ESP + 0x4]
MOV ESI,EBP
MOV EBP,EBX
MOV EAX,dword ptr [EAX + 0x24]
LEA EBX,[EDI + 0xffb5a090]
CMP EAX,EBX
JNZ 0x00273283
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [EAX]
MOV EDX,dword ptr [EDX + 0x24]
CMP EDX,EBX
JNZ 0x002732e8
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x20]
MOV EDI,dword ptr [ESP + 0x10]
LEA EAX,[EDI + 0xffea06e4]
PUSH EAX
MOV EBX,EDI
CALL 0x00039440
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x0023b7e0
MOV EAX,dword ptr [ESP + 0x28]
MOV ESI,EBP
MOV EAX,dword ptr [EAX]
MOV EBP,dword ptr [EAX + 0x8]
TEST EBP,EBP
JZ 0x0027324d
TEST byte ptr [EAX + 0x14],0x10
JZ 0x0027324d
SUB ESP,0xc
PUSH EBX
CALL 0x002712d0
ADD ESP,0x10
MOV EAX,dword ptr [ESI]
MOV EDI,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [EAX]
LEA EBX,[EDI + 0xffb5a090]
MOV EDX,dword ptr [EDX + 0x24]
CMP EDX,EBX
JNZ 0x002732b3
TEST EAX,EAX
JZ 0x002732be
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [EAX]
MOV EDX,dword ptr [EDX + 0x24]
CMP EDX,EBX
JNZ 0x002732dd
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x20]
MOV EDI,dword ptr [ESP + 0x10]
LEA EAX,[EDI + 0xffea06a0]
JMP 0x0027321b
SUB ESP,0xc
PUSH EBP
CALL EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x002731fc
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xffea1124]
PUSH EAX
LEA EAX,[EBX + 0xffe9ff51]
PUSH 0x108a
PUSH EAX
CALL 0x002446e0
SUB ESP,0xc
PUSH EAX
CALL EDX
ADD ESP,0x10
JMP 0x00273262
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xffea1124]
PUSH EAX
LEA EAX,[EBX + 0xffe9ff51]
PUSH 0x1081
PUSH EAX
CALL 0x002446e0
SUB ESP,0xc
PUSH EAX
CALL EDX
ADD ESP,0x10
JMP 0x00273271
SUB ESP,0xc
PUSH EAX
CALL EDX
ADD ESP,0x10
JMP 0x0027320b
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xffea1478]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xcf
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xffea114c]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0x14b
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xffea1224]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0x163
PUSH EAX
CALL 0x002446e0
(translation_unit "undefined8 FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}\n\n" (function_definition "undefined8 FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}" type_identifier (function_declarator "FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)" identifier (parameter_list "(int param_1,uint param_2,uint param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "longlong lVar13;" type_identifier identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (expression_statement "FUN_00074f0e();" (call_expression "FUN_00074f0e()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x13c);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x13c)" identifier = (pointer_expression "*(int **)(param_1 + 0x13c)" * (cast_expression "(int **)(param_1 + 0x13c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x13c)" ( (binary_expression "param_1 + 0x13c" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" if (parenthesized_expression "(piVar8 == *(int **)(param_1 + 0x140))" ( (binary_expression "piVar8 == *(int **)(param_1 + 0x140)" identifier == (pointer_expression "*(int **)(param_1 + 0x140)" * (cast_expression "(int **)(param_1 + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) ))))) )) (compound_statement "{\n    local_44 = param_2;\n    local_40 = param_3;\n  }" { (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" identifier = identifier) ;) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" identifier = identifier) ;) }) (else_clause "else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" else (compound_statement "{\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" { (expression_statement "piVar7 = (int *)(unaff_EBP + 0x377a02);" (assignment_expression "piVar7 = (int *)(unaff_EBP + 0x377a02)" identifier = (cast_expression "(int *)(unaff_EBP + 0x377a02)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x377a02)" ( (binary_expression "unaff_EBP + 0x377a02" identifier + number_literal) )))) ;) (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" identifier = identifier) ;) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" identifier = identifier) ;) (expression_statement "uVar9 = param_2;" (assignment_expression "uVar9 = param_2" identifier = identifier) ;) (expression_statement "uVar10 = param_3;" (assignment_expression "uVar10 = param_3" identifier = identifier) ;) (do_statement "do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);" do (compound_statement "{\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    }" { (expression_statement "iVar4 = *piVar8;" (assignment_expression "iVar4 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }" if (parenthesized_expression "((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0))))" ( (binary_expression "(iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))" (parenthesized_expression "(iVar4 != *(int *)(param_1 + 0x174))" ( (binary_expression "iVar4 != *(int *)(param_1 + 0x174)" identifier != (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) ))))) )) && (parenthesized_expression "(((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))" ( (parenthesized_expression "((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0))" ( (binary_expression "(*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)" (binary_expression "(*(byte *)(iVar4 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar4 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar4 + 0x1c)" * (cast_expression "(byte *)(iVar4 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(iVar4 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar4 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar4 + 0x1c)" * (cast_expression "(byte *)(iVar4 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }" { (if_statement "if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }" { (if_statement "if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }" { (expression_statement "FUN_002c7390(iVar4);" (call_expression "FUN_002c7390(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" * (cast_expression "(undefined1 *)(param_1 + 0x1ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ca)" ( (binary_expression "param_1 + 0x1ca" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = *piVar8;" (assignment_expression "iVar4 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) })) (if_statement "if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;" if (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00272e42;" goto statement_identifier ;)) }) (else_clause "else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" else (if_statement "if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" if (parenthesized_expression "(param_4 == 1)" ( (binary_expression "param_4 == 1" identifier == number_literal) )) (compound_statement "{\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }" { (if_statement "if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }" if (parenthesized_expression "(((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3))" ( (binary_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)" (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x50) != 3)" ( (binary_expression "*(int *)(iVar4 + 0x50) != 3" (pointer_expression "*(int *)(iVar4 + 0x50)" * (cast_expression "(int *)(iVar4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }" { (labeled_statement "LAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);" statement_identifier : (expression_statement "cVar3 = FUN_0030aff0(*piVar7);" (assignment_expression "cVar3 = FUN_0030aff0(*piVar7)" identifier = (call_expression "FUN_0030aff0(*piVar7)" identifier (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) )))) ;)) (if_statement "if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }" { (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" if (parenthesized_expression "(*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596))" ( (binary_expression "*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)" (pointer_expression "*(code **)(*piVar5 + 0xc)" * (cast_expression "(code **)(*piVar5 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) == (cast_expression "(code *)(unaff_EBP + -0x171596)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x171596)" ( (binary_expression "unaff_EBP + -0x171596" identifier + number_literal) )))) )) (compound_statement "{\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }" { (expression_statement "lVar13 = *(longlong *)(piVar5 + 9);" (assignment_expression "lVar13 = *(longlong *)(piVar5 + 9)" identifier = (pointer_expression "*(longlong *)(piVar5 + 9)" * (cast_expression "(longlong *)(piVar5 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 9)" ( (binary_expression "piVar5 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" else (compound_statement "{\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" { (expression_statement "lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);" (assignment_expression "lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0xc))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0xc))" ( (pointer_expression "**(code **)(*piVar5 + 0xc)" * (pointer_expression "*(code **)(*piVar5 + 0xc)" * (cast_expression "(code **)(*piVar5 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) }))) (expression_statement "local_38 = (int)((ulonglong)lVar13 >> 0x20);" (assignment_expression "local_38 = (int)((ulonglong)lVar13 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar13 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar13 >> 0x20)" ( (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_3c = (int)lVar13;" (assignment_expression "local_3c = (int)lVar13" identifier = (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }" { (expression_statement "lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);" (assignment_expression "lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" identifier = (binary_expression "lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" identifier + (call_expression "CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" identifier (argument_list "((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" ( (binary_expression "(uVar10 - 1) + (uint)(uVar9 != 0)" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )))) , (binary_expression "uVar9 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar9 = (uint)lVar13 & -local_3c;" (assignment_expression "uVar9 = (uint)lVar13 & -local_3c" identifier = (binary_expression "(uint)lVar13 & -local_3c" (cast_expression "(uint)lVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_3c" - identifier))) ;) (expression_statement "uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));" (assignment_expression "uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0))" identifier = (binary_expression "(uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0))" (call_expression "(uint)((ulonglong)lVar13 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar13 >> 0x20)" ( (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_38 + (uint)(local_3c != 0))" - (parenthesized_expression "(local_38 + (uint)(local_3c != 0))" ( (binary_expression "local_38 + (uint)(local_3c != 0)" identifier + (call_expression "(uint)(local_3c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )))) ))))) ;) })) (expression_statement "lVar13 = CONCAT44(uVar10,uVar9);" (assignment_expression "lVar13 = CONCAT44(uVar10,uVar9)" identifier = (call_expression "CONCAT44(uVar10,uVar9)" identifier (argument_list "(uVar10,uVar9)" ( identifier , identifier )))) ;) (expression_statement "bVar1 = *(byte *)(piVar5 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar5 + 7)" identifier = (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }" { (labeled_statement "LAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);" statement_identifier : comment (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386)" identifier (argument_list "(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386)" ( (binary_expression "unaff_EBP + 0x1da597" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x218386" identifier + number_literal) ))) ;)) })) (expression_statement "piVar5[5] = uVar9;" (assignment_expression "piVar5[5] = uVar9" (subscript_expression "piVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[6] = uVar10;" (assignment_expression "piVar5[6] = uVar10" (subscript_expression "piVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(piVar5 + 7) = bVar1 | 4;" (assignment_expression "*(byte *)(piVar5 + 7) = bVar1 | 4" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }" { (expression_statement "(**(code **)(*piVar5 + 0x38))(piVar5);" (call_expression "(**(code **)(*piVar5 + 0x38))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x38))" ( (pointer_expression "**(code **)(*piVar5 + 0x38)" * (pointer_expression "*(code **)(*piVar5 + 0x38)" * (cast_expression "(code **)(*piVar5 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x38)" ( (binary_expression "*piVar5 + 0x38" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }" { (labeled_statement "LAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);" statement_identifier : comment (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e)" identifier (argument_list "(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e)" ( (binary_expression "unaff_EBP + 0x1da597" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x21845e" identifier + number_literal) ))) ;)) })) (goto_statement "goto LAB_00272f02;" goto statement_identifier ;) })) }) (else_clause "else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" else (compound_statement "{\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" { (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }" { (expression_statement "(**(code **)(iVar4 + 0x34))(piVar5);" (call_expression "(**(code **)(iVar4 + 0x34))(piVar5)" (parenthesized_expression "(**(code **)(iVar4 + 0x34))" ( (pointer_expression "**(code **)(iVar4 + 0x34)" * (pointer_expression "*(code **)(iVar4 + 0x34)" * (cast_expression "(code **)(iVar4 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) })) (expression_statement "uVar9 = piVar5[3];" (assignment_expression "uVar9 = piVar5[3]" identifier = (subscript_expression "piVar5[3]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar5[4];" (assignment_expression "iVar12 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (if_statement "if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" if (parenthesized_expression "(*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596))" ( (binary_expression "*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)" (pointer_expression "*(code **)(iVar4 + 0xc)" * (cast_expression "(code **)(iVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) == (cast_expression "(code *)(unaff_EBP + -0x171596)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x171596)" ( (binary_expression "unaff_EBP + -0x171596" identifier + number_literal) )))) )) (compound_statement "{\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }" { (expression_statement "uVar14 = *(undefined8 *)(piVar5 + 9);" (assignment_expression "uVar14 = *(undefined8 *)(piVar5 + 9)" identifier = (pointer_expression "*(undefined8 *)(piVar5 + 9)" * (cast_expression "(undefined8 *)(piVar5 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 9)" ( (binary_expression "piVar5 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" else (compound_statement "{\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" { (expression_statement "uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);" (assignment_expression "uVar14 = (**(code **)(iVar4 + 0xc))(piVar5)" identifier = (call_expression "(**(code **)(iVar4 + 0xc))(piVar5)" (parenthesized_expression "(**(code **)(iVar4 + 0xc))" ( (pointer_expression "**(code **)(iVar4 + 0xc)" * (pointer_expression "*(code **)(iVar4 + 0xc)" * (cast_expression "(code **)(iVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) }))) (expression_statement "lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);" (assignment_expression "lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" identifier = (call_expression "FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" identifier (argument_list "(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }" if (parenthesized_expression "(lVar13 == -1)" ( (binary_expression "lVar13 == -1" identifier == number_literal) )) (compound_statement "{\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    /* WARNING: Subroutine does not return */\n                FUN_0023b7e0(uVar6,iVar12);\n              }" { (if_statement "if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }" if (parenthesized_expression "((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0))" ( (binary_expression "(*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)" (parenthesized_expression "(*(int *)(*piVar7 + 8) != 0)" ( (binary_expression "*(int *)(*piVar7 + 8) != 0" (pointer_expression "*(int *)(*piVar7 + 8)" * (cast_expression "(int *)(*piVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 8)" ( (binary_expression "*piVar7 + 8" (pointer_expression "*piVar7" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)" ( (binary_expression "(*(byte *)(*piVar7 + 0x14) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*piVar7 + 0x14) & 0x10)" ( (binary_expression "*(byte *)(*piVar7 + 0x14) & 0x10" (pointer_expression "*(byte *)(*piVar7 + 0x14)" * (cast_expression "(byte *)(*piVar7 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x14)" ( (binary_expression "*piVar7 + 0x14" (pointer_expression "*piVar7" * identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                  FUN_002712d0(param_1 + 0x248);\n                }" { (expression_statement "FUN_002712d0(param_1 + 0x248);" (call_expression "FUN_002712d0(param_1 + 0x248)" identifier (argument_list "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))) ;) })) (expression_statement "piVar7 = (int *)*piVar8;" (assignment_expression "piVar7 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }" if (parenthesized_expression "(*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar7 + 0x24)" * (cast_expression "(code **)(*piVar7 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x24)" ( (binary_expression "*piVar7 + 0x24" (pointer_expression "*piVar7" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }" { (expression_statement "piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);" (assignment_expression "piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7)" identifier = (cast_expression "(int *)(**(code **)(*piVar7 + 0x24))(piVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar7 + 0x24))(piVar7)" (parenthesized_expression "(**(code **)(*piVar7 + 0x24))" ( (pointer_expression "**(code **)(*piVar7 + 0x24)" * (pointer_expression "*(code **)(*piVar7 + 0x24)" * (cast_expression "(code **)(*piVar7 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x24)" ( (binary_expression "*piVar7 + 0x24" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))))) ;) })) (if_statement "if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }" { comment (expression_statement "FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);" (call_expression "FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e)" identifier (argument_list "(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e)" ( (binary_expression "unaff_EBP + 0x21718b" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x21835e" identifier + number_literal) ))) ;) })) (expression_statement "piVar8 = (int *)*piVar8;" (assignment_expression "piVar8 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" if (parenthesized_expression "(*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" { (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8)" identifier = (cast_expression "(int *)(**(code **)(*piVar8 + 0x24))(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar8 + 0x24))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x24))" ( (pointer_expression "**(code **)(*piVar8 + 0x24)" * (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))))) ;) })) (expression_statement "iVar12 = piVar8[8];" (assignment_expression "iVar12 = piVar8[8]" identifier = (subscript_expression "piVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = unaff_EBP + 0x2178da;" (assignment_expression "iVar4 = unaff_EBP + 0x2178da" identifier = (binary_expression "unaff_EBP + 0x2178da" identifier + number_literal)) ;) (labeled_statement "LAB_0027321b:\n                uVar6 = gettext(iVar4);" statement_identifier : (expression_statement "uVar6 = gettext(iVar4);" (assignment_expression "uVar6 = gettext(iVar4)" identifier = (call_expression "gettext(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;)) comment (expression_statement "FUN_0023b7e0(uVar6,iVar12);" (call_expression "FUN_0023b7e0(uVar6,iVar12)" identifier (argument_list "(uVar6,iVar12)" ( identifier , identifier ))) ;) })) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(piVar5 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar5 + 7)" identifier = (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_00273315;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00273315;" goto statement_identifier ;)) (expression_statement "*(longlong *)(piVar5 + 5) = lVar13;" (assignment_expression "*(longlong *)(piVar5 + 5) = lVar13" (pointer_expression "*(longlong *)(piVar5 + 5)" * (cast_expression "(longlong *)(piVar5 + 5)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 5)" ( (binary_expression "piVar5 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(piVar5 + 7) = bVar1 | 4;" (assignment_expression "*(byte *)(piVar5 + 7) = bVar1 | 4" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }" { (expression_statement "(**(code **)(*piVar5 + 0x38))(piVar5);" (call_expression "(**(code **)(*piVar5 + 0x38))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x38))" ( (pointer_expression "**(code **)(*piVar5 + 0x38)" * (pointer_expression "*(code **)(*piVar5 + 0x38)" * (cast_expression "(code **)(*piVar5 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x38)" ( (binary_expression "*piVar5 + 0x38" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00273334;" goto statement_identifier ;)) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_002732f6;" goto statement_identifier ;)) })) (expression_statement "uVar9 = (uint)(uVar9 < (uint)piVar5[3]);" (assignment_expression "uVar9 = (uint)(uVar9 < (uint)piVar5[3])" identifier = (call_expression "(uint)(uVar9 < (uint)piVar5[3])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < (uint)piVar5[3])" ( (binary_expression "uVar9 < (uint)piVar5[3]" identifier < (cast_expression "(uint)piVar5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar5[3]" identifier [ number_literal ]))) )))) ;) (expression_statement "iVar4 = iVar12 - piVar5[4];" (assignment_expression "iVar4 = iVar12 - piVar5[4]" identifier = (binary_expression "iVar12 - piVar5[4]" identifier - (subscript_expression "piVar5[4]" identifier [ number_literal ]))) ;) (if_statement "if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }" if (parenthesized_expression "((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)" ( (binary_expression "(SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0" (parenthesized_expression "(SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9))" ( (binary_expression "SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)" (call_expression "SBORROW4(iVar12,piVar5[4])" identifier (argument_list "(iVar12,piVar5[4])" ( identifier , (subscript_expression "piVar5[4]" identifier [ number_literal ]) ))) != (call_expression "SBORROW4(iVar4,uVar9)" identifier (argument_list "(iVar4,uVar9)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar4 - uVar9) < 0" (cast_expression "(int)(iVar4 - uVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar4 - uVar9)" ( (binary_expression "iVar4 - uVar9" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }" { (if_statement "if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }" if (parenthesized_expression "((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0))" ( (binary_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)" (parenthesized_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) && (parenthesized_expression "(iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" ( (pointer_expression "**(code **)(*piVar5 + 0x24)" * (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }" { comment (expression_statement "FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);" (call_expression "FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e)" identifier (argument_list "(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e)" ( (binary_expression "unaff_EBP + 0x21718b" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x21835e" identifier + number_literal) ))) ;) })) (expression_statement "piVar8 = (int *)*piVar8;" (assignment_expression "piVar8 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" if (parenthesized_expression "(*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" { (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8)" identifier = (cast_expression "(int *)(**(code **)(*piVar8 + 0x24))(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar8 + 0x24))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x24))" ( (pointer_expression "**(code **)(*piVar8 + 0x24)" * (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))))) ;) })) (expression_statement "iVar12 = piVar8[8];" (assignment_expression "iVar12 = piVar8[8]" identifier = (subscript_expression "piVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = unaff_EBP + 0x21791e;" (assignment_expression "iVar4 = unaff_EBP + 0x21791e" identifier = (binary_expression "unaff_EBP + 0x21791e" identifier + number_literal)) ;) (goto_statement "goto LAB_0027321b;" goto statement_identifier ;) })) (expression_statement "puVar2 = (undefined4 *)*piVar7;" (assignment_expression "puVar2 = (undefined4 *)*piVar7" identifier = (cast_expression "(undefined4 *)*piVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (if_statement "if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;" if (parenthesized_expression "((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0))" ( (binary_expression "(puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)" (parenthesized_expression "(puVar2[2] == 0)" ( (binary_expression "puVar2[2] == 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((*(byte *)(puVar2 + 5) & 0x10) == 0)" ( (binary_expression "(*(byte *)(puVar2 + 5) & 0x10) == 0" (parenthesized_expression "(*(byte *)(puVar2 + 5) & 0x10)" ( (binary_expression "*(byte *)(puVar2 + 5) & 0x10" (pointer_expression "*(byte *)(puVar2 + 5)" * (cast_expression "(byte *)(puVar2 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 5)" ( (binary_expression "puVar2 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00272f0f;" goto statement_identifier ;)) (expression_statement "uVar6 = *puVar2;" (assignment_expression "uVar6 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (if_statement "if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) )))) == (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }" { (labeled_statement "LAB_002730dc:\n                piVar11 = piVar5;" statement_identifier : (expression_statement "piVar11 = piVar5;" (assignment_expression "piVar11 = piVar5" identifier = identifier) ;)) (if_statement "if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }" { (expression_statement "piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);" (assignment_expression "piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5)" identifier = (cast_expression "(int *)(**(code **)(*piVar5 + 0x24))(piVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" ( (pointer_expression "**(code **)(*piVar5 + 0x24)" * (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))))) ;) (expression_statement "piVar11 = (int *)*piVar8;" (assignment_expression "piVar11 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) })) (expression_statement "iVar4 = piVar5[8];" (assignment_expression "iVar4 = piVar5[8]" identifier = (subscript_expression "piVar5[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" { (expression_statement "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);" (assignment_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" ( (pointer_expression "**(code **)(*piVar5 + 0x24)" * (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "piVar11 = (int *)*piVar8;" (assignment_expression "piVar11 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "piVar5 = piVar11;" (assignment_expression "piVar5 = piVar11" identifier = identifier) ;) (if_statement "if (iVar4 != 0) goto LAB_002730dc;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002730dc;" goto statement_identifier ;)) (expression_statement "iVar4 = unaff_EBP + 0x217273;" (assignment_expression "iVar4 = unaff_EBP + 0x217273" identifier = (binary_expression "unaff_EBP + 0x217273" identifier + number_literal)) ;) }))) (if_statement "if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;" if (parenthesized_expression "((*(byte *)(piVar11 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar11 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar11 + 7) & 2)" ( (binary_expression "*(byte *)(piVar11 + 7) & 2" (pointer_expression "*(byte *)(piVar11 + 7)" * (cast_expression "(byte *)(piVar11 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11 + 7)" ( (binary_expression "piVar11 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_002732f6;" goto statement_identifier ;)) (expression_statement "FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);" (call_expression "FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4)" identifier (argument_list "(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4)" ( identifier , (binary_expression "unaff_EBP + 0x21795a" identifier + number_literal) , (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) , (subscript_expression "piVar11[3]" identifier [ number_literal ]) , identifier ))) ;) (labeled_statement "LAB_00272f02:\n              piVar5 = (int *)*piVar8;" statement_identifier : (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;)) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }" { (labeled_statement "LAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);" statement_identifier : comment (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2)" identifier (argument_list "(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2)" ( (binary_expression "unaff_EBP + 0x1da597" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2186b2" identifier + number_literal) ))) ;)) })) }))) (labeled_statement "LAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];" statement_identifier : (expression_statement "uVar9 = (uint)lVar13 + piVar5[3];" (assignment_expression "uVar9 = (uint)lVar13 + piVar5[3]" identifier = (binary_expression "(uint)lVar13 + piVar5[3]" (cast_expression "(uint)lVar13" ( (type_descriptor "uint" type_identifier) ) identifier) + (subscript_expression "piVar5[3]" identifier [ number_literal ]))) ;)) (expression_statement "uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);" (assignment_expression "uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3])" identifier = (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3])" (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + piVar5[4]" (cast_expression "(int)((ulonglong)lVar13 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar13 >> 0x20)" ( (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (subscript_expression "piVar5[4]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)lVar13,piVar5[3])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)lVar13,piVar5[3])" identifier (argument_list "((uint)lVar13,piVar5[3])" ( (cast_expression "(uint)lVar13" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "piVar5[3]" identifier [ number_literal ]) )))))) ;) (if_statement "if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }" if (parenthesized_expression "((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0)" ( (binary_expression "(SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0" (parenthesized_expression "(SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))" ( (binary_expression "SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9))" (call_expression "SBORROW4(local_40,uVar10)" identifier (argument_list "(local_40,uVar10)" ( identifier , identifier ))) != (call_expression "SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9))" identifier (argument_list "(local_40 - uVar10,(uint)(local_44 < uVar9))" ( (binary_expression "local_40 - uVar10" identifier - identifier) , (call_expression "(uint)(local_44 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < uVar9)" ( (binary_expression "local_44 < uVar9" identifier < identifier) ))) )))) )) != (binary_expression "(int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0" (cast_expression "(int)((local_40 - uVar10) - (uint)(local_44 < uVar9))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((local_40 - uVar10) - (uint)(local_44 < uVar9))" ( (binary_expression "(local_40 - uVar10) - (uint)(local_44 < uVar9)" (parenthesized_expression "(local_40 - uVar10)" ( (binary_expression "local_40 - uVar10" identifier - identifier) )) - (call_expression "(uint)(local_44 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < uVar9)" ( (binary_expression "local_44 < uVar9" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }" { (expression_statement "local_40 = uVar10;" (assignment_expression "local_40 = uVar10" identifier = identifier) ;) (expression_statement "local_44 = uVar9;" (assignment_expression "local_44 = uVar9" identifier = identifier) ;) })) (if_statement "if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }" if (parenthesized_expression "(param_4 != 2)" ( (binary_expression "param_4 != 2" identifier != number_literal) )) (compound_statement "{\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }" { (expression_statement "FUN_00349de0(param_1 + 8,piVar5[8],0,0);" (call_expression "FUN_00349de0(param_1 + 8,piVar5[8],0,0)" identifier (argument_list "(param_1 + 8,piVar5[8],0,0)" ( (binary_expression "param_1 + 8" identifier + number_literal) , (subscript_expression "piVar5[8]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) })) })) }) (else_clause "else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" else (if_statement "if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" if (parenthesized_expression "((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))" ( (binary_expression "(param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)))" (parenthesized_expression "(param_4 != 2)" ( (binary_expression "param_4 != 2" identifier != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)))" ( (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)" (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(*(int *)(iVar4 + 0x50) == 3)" ( (binary_expression "*(int *)(iVar4 + 0x50) == 3" (pointer_expression "*(int *)(iVar4 + 0x50)" * (cast_expression "(int *)(iVar4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00272e42;" goto statement_identifier ;)))))) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x140) != piVar8)" ( (binary_expression "*(int **)(param_1 + 0x140) != piVar8" (pointer_expression "*(int **)(param_1 + 0x140)" * (cast_expression "(int **)(param_1 + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) != identifier) )) ;) }))) (return_statement "return CONCAT44(local_40,local_44);" return (call_expression "CONCAT44(local_40,local_44)" identifier (argument_list "(local_40,local_44)" ( identifier , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: off_t set_section_offsets(Layout * this, off_t off, Section_offset_pass\n   pass) */\n\noff_t __thiscall gold::Layout::set_section_offsets(Layout *this,off_t off,Section_offset_pass pass)\n\n{\n  off_t *poVar1;\n  int *piVar2;\n  byte bVar3;\n  _func_int_varargs *p_Var4;\n  Errors *this_00;\n  off_t len;\n  longlong lVar5;\n  off_t oVar6;\n  bool bVar7;\n  int iVar8;\n  Output_section *pOVar9;\n  char *pcVar10;\n  _func_int_varargs **pp_Var11;\n  undefined4 uVar12;\n  int extraout_EDX;\n  undefined4 extraout_EDX_00;\n  Output_section *pOVar13;\n  pointer ppOVar14;\n  uint uVar15;\n  char *pcVar16;\n  int iVar17;\n  longlong lVar18;\n  uint local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  \n  ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;\n  lVar5 = off;\n  if (ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    lVar18 = off;\n    do {\n      local_40 = (int)((ulonglong)lVar5 >> 0x20);\n      local_44 = (uint)lVar5;\n      pOVar9 = *ppOVar14;\n      if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }\n      ppOVar14 = ppOVar14 + 1;\n    } while ((this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14);\n  }\n  return lVar5;\n}\n\n" comment comment comment comment (function_definition "off_t __thiscall gold::Layout::set_section_offsets(Layout *this,off_t off,Section_offset_pass pass)\n\n{\n  off_t *poVar1;\n  int *piVar2;\n  byte bVar3;\n  _func_int_varargs *p_Var4;\n  Errors *this_00;\n  off_t len;\n  longlong lVar5;\n  off_t oVar6;\n  bool bVar7;\n  int iVar8;\n  Output_section *pOVar9;\n  char *pcVar10;\n  _func_int_varargs **pp_Var11;\n  undefined4 uVar12;\n  int extraout_EDX;\n  undefined4 extraout_EDX_00;\n  Output_section *pOVar13;\n  pointer ppOVar14;\n  uint uVar15;\n  char *pcVar16;\n  int iVar17;\n  longlong lVar18;\n  uint local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  \n  ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;\n  lVar5 = off;\n  if (ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    lVar18 = off;\n    do {\n      local_40 = (int)((ulonglong)lVar5 >> 0x20);\n      local_44 = (uint)lVar5;\n      pOVar9 = *ppOVar14;\n      if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }\n      ppOVar14 = ppOVar14 + 1;\n    } while ((this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14);\n  }\n  return lVar5;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "set_section_offsets(Layout *this,off_t off,Section_offset_pass pass)" identifier (parameter_list "(Layout *this,off_t off,Section_offset_pass pass)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "off_t off" type_identifier identifier) , (parameter_declaration "Section_offset_pass pass" type_identifier identifier) ))) (compound_statement "{\n  off_t *poVar1;\n  int *piVar2;\n  byte bVar3;\n  _func_int_varargs *p_Var4;\n  Errors *this_00;\n  off_t len;\n  longlong lVar5;\n  off_t oVar6;\n  bool bVar7;\n  int iVar8;\n  Output_section *pOVar9;\n  char *pcVar10;\n  _func_int_varargs **pp_Var11;\n  undefined4 uVar12;\n  int extraout_EDX;\n  undefined4 extraout_EDX_00;\n  Output_section *pOVar13;\n  pointer ppOVar14;\n  uint uVar15;\n  char *pcVar16;\n  int iVar17;\n  longlong lVar18;\n  uint local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  \n  ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;\n  lVar5 = off;\n  if (ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    lVar18 = off;\n    do {\n      local_40 = (int)((ulonglong)lVar5 >> 0x20);\n      local_44 = (uint)lVar5;\n      pOVar9 = *ppOVar14;\n      if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }\n      ppOVar14 = ppOVar14 + 1;\n    } while ((this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14);\n  }\n  return lVar5;\n}" { (declaration "off_t *poVar1;" type_identifier (pointer_declarator "*poVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "_func_int_varargs *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "Errors *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "off_t len;" type_identifier identifier ;) (declaration "longlong lVar5;" type_identifier identifier ;) (declaration "off_t oVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "Output_section *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "_func_int_varargs **pp_Var11;" type_identifier (pointer_declarator "**pp_Var11" * (pointer_declarator "*pp_Var11" * identifier)) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "Output_section *pOVar13;" type_identifier (pointer_declarator "*pOVar13" * identifier) ;) (declaration "pointer ppOVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "longlong lVar18;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (expression_statement "ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;" (field_expression "ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start" (field_expression "ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl" (binary_expression "ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar14 = (this->unattached_section_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->unattached_section_list_).\n             super__Vector_base<gold" (field_expression "(this->unattached_section_list_).\n             super__Vector_base" (parenthesized_expression "(this->unattached_section_list_)" ( (field_expression "this->unattached_section_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "lVar5 = off;" (assignment_expression "lVar5 = off" identifier = identifier) ;) (if_statement "if (ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish) {\n    lVar18 = off;\n    do {\n      local_40 = (int)((ulonglong)lVar5 >> 0x20);\n      local_44 = (uint)lVar5;\n      pOVar9 = *ppOVar14;\n      if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }\n      ppOVar14 = ppOVar14 + 1;\n    } while ((this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14);\n  }" if (parenthesized_expression "(ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish)" ( (field_expression "ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n      _M_finish" (field_expression "ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold::Output_section*,_std" (binary_expression "ppOVar14 !=\n      (this->unattached_section_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->unattached_section_list_).\n      super__Vector_base<gold" (field_expression "(this->unattached_section_list_).\n      super__Vector_base" (parenthesized_expression "(this->unattached_section_list_)" ( (field_expression "this->unattached_section_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    lVar18 = off;\n    do {\n      local_40 = (int)((ulonglong)lVar5 >> 0x20);\n      local_44 = (uint)lVar5;\n      pOVar9 = *ppOVar14;\n      if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }\n      ppOVar14 = ppOVar14 + 1;\n    } while ((this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14);\n  }" { (expression_statement "lVar18 = off;" (assignment_expression "lVar18 = off" identifier = identifier) ;) (do_statement "do {\n      local_40 = (int)((ulonglong)lVar5 >> 0x20);\n      local_44 = (uint)lVar5;\n      pOVar9 = *ppOVar14;\n      if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }\n      ppOVar14 = ppOVar14 + 1;\n    } while ((this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14);" do (compound_statement "{\n      local_40 = (int)((ulonglong)lVar5 >> 0x20);\n      local_44 = (uint)lVar5;\n      pOVar9 = *ppOVar14;\n      if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }\n      ppOVar14 = ppOVar14 + 1;\n    }" { (expression_statement "local_40 = (int)((ulonglong)lVar5 >> 0x20);" (assignment_expression "local_40 = (int)((ulonglong)lVar5 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar5 >> 0x20)" ( (binary_expression "(ulonglong)lVar5 >> 0x20" (cast_expression "(ulonglong)lVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_44 = (uint)lVar5;" (assignment_expression "local_44 = (uint)lVar5" identifier = (cast_expression "(uint)lVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (if_statement "if ((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))\n      {\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }" if (parenthesized_expression "((pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))))" ( (binary_expression "(pOVar9 != this->symtab_section_) &&\n         ((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0)))" (parenthesized_expression "(pOVar9 != this->symtab_section_)" ( (binary_expression "pOVar9 != this->symtab_section_" identifier != (field_expression "this->symtab_section_" identifier -> field_identifier)) )) && (parenthesized_expression "((bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0)))" ( (parenthesized_expression "(bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0))" ( (comma_expression "bVar3 = (pOVar9->super_Output_data).field_0x1c, (bVar3 & 4) == 0 || ((bVar3 & 2) == 0)" (assignment_expression "bVar3 = (pOVar9->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(bVar3 & 4) == 0 || ((bVar3 & 2) == 0)" (binary_expression "(bVar3 & 4) == 0" (parenthesized_expression "(bVar3 & 4)" ( (binary_expression "bVar3 & 4" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )))) )) ))) )) (compound_statement "{\n        if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;\n      }" { (if_statement "if (pass == BEFORE_INPUT_SECTIONS_PASS) {\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;" if (parenthesized_expression "(pass == BEFORE_INPUT_SECTIONS_PASS)" ( (binary_expression "pass == BEFORE_INPUT_SECTIONS_PASS" identifier == identifier) )) (compound_statement "{\n          if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }\n          if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;\n        }" { (if_statement "if ((pOVar9->field_0x90 & 0x20) != 0) {\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }" if (parenthesized_expression "((pOVar9->field_0x90 & 0x20) != 0)" ( (binary_expression "(pOVar9->field_0x90 & 0x20) != 0" (parenthesized_expression "(pOVar9->field_0x90 & 0x20)" ( (binary_expression "pOVar9->field_0x90 & 0x20" (field_expression "pOVar9->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            Output_section::create_postprocessing_buffer(pOVar9);\n            this->any_postprocessing_sections_ = true;\n            pOVar9 = *ppOVar14;\n          }" { (labeled_statement "Output_section::create_postprocessing_buffer(pOVar9);" statement_identifier : (ERROR ":" :) (expression_statement "create_postprocessing_buffer(pOVar9);" (call_expression "create_postprocessing_buffer(pOVar9)" identifier (argument_list "(pOVar9)" ( identifier ))) ;)) (expression_statement "this->any_postprocessing_sections_ = true;" (assignment_expression "this->any_postprocessing_sections_ = true" (field_expression "this->any_postprocessing_sections_" identifier -> field_identifier) = true) ;) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) })) (if_statement "if ((pOVar9->field_0x90 & 0x10) == 0) goto LAB_00272e42;" if (parenthesized_expression "((pOVar9->field_0x90 & 0x10) == 0)" ( (binary_expression "(pOVar9->field_0x90 & 0x10) == 0" (parenthesized_expression "(pOVar9->field_0x90 & 0x10)" ( (binary_expression "pOVar9->field_0x90 & 0x10" (field_expression "pOVar9->field_0x90" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00272e42;" goto statement_identifier ;)) }) (else_clause "else if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;" else (if_statement "if (pass == POSTPROCESSING_SECTIONS_PASS) {\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }\n        else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;" if (parenthesized_expression "(pass == POSTPROCESSING_SECTIONS_PASS)" ( (binary_expression "pass == POSTPROCESSING_SECTIONS_PASS" identifier == identifier) )) (compound_statement "{\n          if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }\n        }" { (if_statement "if (((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)) {\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }" if (parenthesized_expression "(((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3))" ( (binary_expression "((pOVar9->field_0x90 & 0x10) != 0) && (pOVar9->type_ != 3)" (parenthesized_expression "((pOVar9->field_0x90 & 0x10) != 0)" ( (binary_expression "(pOVar9->field_0x90 & 0x10) != 0" (parenthesized_expression "(pOVar9->field_0x90 & 0x10)" ( (binary_expression "pOVar9->field_0x90 & 0x10" (field_expression "pOVar9->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(pOVar9->type_ != 3)" ( (binary_expression "pOVar9->type_ != 3" (field_expression "pOVar9->type_" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\nLAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);\n            if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }\nLAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;\n            uVar15 = (uint)lVar18 + (int)*poVar1;\n            iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);\n            if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }\n            lVar18 = CONCAT44(iVar17,uVar15);\n            if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }\n          }" { (labeled_statement "LAB_00272e42:\n            bVar7 = Parameters::incremental_update(parameters);" statement_identifier : (ERROR "bVar7 = Parameters::" (assignment_expression "bVar7 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;)) (if_statement "if (bVar7) {\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }\n            else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n              pOVar9 = *ppOVar14;\n              pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }\n              poVar1 = &(pOVar9->super_Output_data).data_size_;\n              oVar6 = *poVar1;\n              iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              len = *poVar1;\n              if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }\n              lVar18 = Free_list::allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);\n              if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }\n              pOVar9 = *ppOVar14;\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) goto LAB_00273315;\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }\n              piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);\n              uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);\n              iVar8 = iVar17 - *piVar2;\n              if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }\n              if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;\n              this_00 = parameters->errors_;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n              if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }\n              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);\nLAB_00272f02:\n              pOVar9 = *ppOVar14;\n              if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n            }" { (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;" (assignment_expression "pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data" identifier = (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }" if (parenthesized_expression "(((pOVar9->super_Output_data).field_0x1c & 2) == 0)" ( (binary_expression "((pOVar9->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((pOVar9->super_Output_data).field_0x1c & 2)" ( (binary_expression "(pOVar9->super_Output_data).field_0x1c & 2" (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                (*pp_Var11[0xd])(pOVar9);\n                pOVar9 = *ppOVar14;\n                pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;\n              }" { (expression_statement "(*pp_Var11[0xd])(pOVar9);" (call_expression "(*pp_Var11[0xd])(pOVar9)" (parenthesized_expression "(*pp_Var11[0xd])" ( (pointer_expression "*pp_Var11[0xd]" * (subscript_expression "pp_Var11[0xd]" identifier [ number_literal ])) )) (argument_list "(pOVar9)" ( identifier ))) ;) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data;" (assignment_expression "pp_Var11 = (pOVar9->super_Output_data)._vptr_Output_data" identifier = (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "poVar1 = &(pOVar9->super_Output_data).data_size_;" (assignment_expression "poVar1 = &(pOVar9->super_Output_data).data_size_" identifier = (pointer_expression "&(pOVar9->super_Output_data).data_size_" & (field_expression "(pOVar9->super_Output_data).data_size_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "oVar6 = *poVar1;" (assignment_expression "oVar6 = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (expression_statement "iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);" (assignment_expression "iVar17 = *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" * (cast_expression "(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar9->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar9->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar9->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar9->super_Output_data).data_size_" & (field_expression "(pOVar9->super_Output_data).data_size_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "len = *poVar1;" (assignment_expression "len = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (if_statement "if (pp_Var11[3] == Output_section::do_addralign) {\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }\n              else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }" if (parenthesized_expression "(pp_Var11[3] == Output_section::do_addralign)" ( (binary_expression "pp_Var11[3] == Output_section" (subscript_expression "pp_Var11[3]" identifier [ number_literal ]) == identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n                uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);\n                iVar8 = (int)pOVar9->addralign_;\n              }" { (expression_statement "uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4);" (assignment_expression "uVar12 = *(undefined4 *)((int)&pOVar9->addralign_ + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pOVar9->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar9->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->addralign_ + 4)" ( (binary_expression "(int)&pOVar9->addralign_ + 4" (cast_expression "(int)&pOVar9->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->addralign_" & (field_expression "pOVar9->addralign_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "iVar8 = (int)pOVar9->addralign_;" (assignment_expression "iVar8 = (int)pOVar9->addralign_" identifier = (cast_expression "(int)pOVar9->addralign_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar9->addralign_" identifier -> field_identifier))) ;) }) (else_clause "else {\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }" else (compound_statement "{\n                iVar8 = (*pp_Var11[3])(pOVar9);\n                uVar12 = extraout_EDX_00;\n              }" { (expression_statement "iVar8 = (*pp_Var11[3])(pOVar9);" (assignment_expression "iVar8 = (*pp_Var11[3])(pOVar9)" identifier = (call_expression "(*pp_Var11[3])(pOVar9)" (parenthesized_expression "(*pp_Var11[3])" ( (pointer_expression "*pp_Var11[3]" * (subscript_expression "pp_Var11[3]" identifier [ number_literal ])) )) (argument_list "(pOVar9)" ( identifier )))) ;) (expression_statement "uVar12 = extraout_EDX_00;" (assignment_expression "uVar12 = extraout_EDX_00" identifier = identifier) ;) }))) (ERROR "lVar18 = Free_list::" (assignment_expression "lVar18 = Free_list" identifier = identifier) : :) (expression_statement "allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off);" (call_expression "allocate(&this->free_list_,len,CONCAT44(uVar12,iVar8),off)" identifier (argument_list "(&this->free_list_,len,CONCAT44(uVar12,iVar8),off)" ( (pointer_expression "&this->free_list_" & (field_expression "this->free_list_" identifier -> field_identifier)) , identifier , (call_expression "CONCAT44(uVar12,iVar8)" identifier (argument_list "(uVar12,iVar8)" ( identifier , identifier ))) , identifier ))) ;) (if_statement "if (lVar18 == -1) {\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }" if (parenthesized_expression "(lVar18 == -1)" ( (binary_expression "lVar18 == -1" identifier == number_literal) )) (compound_statement "{\n                if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "out of patch space for section %s; relink with --incremental-full";\nLAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);\n                    /* WARNING: Subroutine does not return */\n                gold_fallback(pcVar10,pcVar16);\n              }" { (if_statement "if ((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)) {\n                  Free_list::dump(&this->free_list_);\n                }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) &&\n                   ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                  Free_list::dump(&this->free_list_);\n                }" { (labeled_statement "Free_list::dump(&this->free_list_);" statement_identifier : (ERROR ":" :) (expression_statement "dump(&this->free_list_);" (call_expression "dump(&this->free_list_)" identifier (argument_list "(&this->free_list_)" ( (pointer_expression "&this->free_list_" & (field_expression "this->free_list_" identifier -> field_identifier)) ))) ;)) })) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];" (assignment_expression "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[9]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }" if (parenthesized_expression "(p_Var4 != Output_section::do_output_section)" ( (binary_expression "p_Var4 != Output_section" identifier != identifier) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }" { (expression_statement "pOVar9 = (Output_section *)(*p_Var4)(pOVar9);" (assignment_expression "pOVar9 = (Output_section *)(*p_Var4)(pOVar9)" identifier = (cast_expression "(Output_section *)(*p_Var4)(pOVar9)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var4)(pOVar9)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(pOVar9)" ( identifier ))))) ;) })) (if_statement "if (pOVar9 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }" if (parenthesized_expression "(pOVar9 == (Output_section *)0x0)" ( (binary_expression "pOVar9 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");\n                }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1081,"set_section_offsets")" identifier (argument_list "("../../gold/layout.cc",0x1081,"set_section_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_section_offsets"" " string_content ") ))) ;) })) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];" (assignment_expression "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[9]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }" if (parenthesized_expression "(p_Var4 != Output_section::do_output_section)" ( (binary_expression "p_Var4 != Output_section" identifier != identifier) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }" { (expression_statement "pOVar9 = (Output_section *)(*p_Var4)(pOVar9);" (assignment_expression "pOVar9 = (Output_section *)(*p_Var4)(pOVar9)" identifier = (cast_expression "(Output_section *)(*p_Var4)(pOVar9)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var4)(pOVar9)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(pOVar9)" ( identifier ))))) ;) })) (expression_statement "pcVar16 = pOVar9->name_;" (assignment_expression "pcVar16 = pOVar9->name_" identifier = (field_expression "pOVar9->name_" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = "out of patch space for section %s; relink with --incremental-full";" (assignment_expression "pcVar10 = "out of patch space for section %s; relink with --incremental-full"" identifier = (string_literal ""out of patch space for section %s; relink with --incremental-full"" " string_content ")) ;) (labeled_statement "LAB_0027321b:\n                pcVar10 = (char *)gettext(pcVar10);" statement_identifier : (expression_statement "pcVar10 = (char *)gettext(pcVar10);" (assignment_expression "pcVar10 = (char *)gettext(pcVar10)" identifier = (cast_expression "(char *)gettext(pcVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))))) ;)) comment (expression_statement "gold_fallback(pcVar10,pcVar16);" (call_expression "gold_fallback(pcVar10,pcVar16)" identifier (argument_list "(pcVar10,pcVar16)" ( identifier , identifier ))) ;) })) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "bVar3 = (pOVar9->super_Output_data).field_0x1c;" (assignment_expression "bVar3 = (pOVar9->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar3 & 4) != 0) goto LAB_00273315;" if (parenthesized_expression "((bVar3 & 4) != 0)" ( (binary_expression "(bVar3 & 4) != 0" (parenthesized_expression "(bVar3 & 4)" ( (binary_expression "bVar3 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00273315;" goto statement_identifier ;)) (expression_statement "(pOVar9->super_Output_data).offset_ = lVar18;" (assignment_expression "(pOVar9->super_Output_data).offset_ = lVar18" (field_expression "(pOVar9->super_Output_data).offset_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pOVar9->super_Output_data).field_0x1c = bVar3 | 4;" (assignment_expression "(pOVar9->super_Output_data).field_0x1c = bVar3 | 4" (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar3 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }" if (parenthesized_expression "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;\n                pOVar9 = *ppOVar14;\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;\n              }" { (expression_statement "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);" (call_expression "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9)" (parenthesized_expression "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])" ( (pointer_expression "*(pOVar9->super_Output_data)._vptr_Output_data[0xe]" * (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[0xe]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pOVar9)" ( identifier ))) ;) (if_statement "if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;" if (parenthesized_expression "(((pOVar9->super_Output_data).field_0x1c & 2) == 0)" ( (binary_expression "((pOVar9->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((pOVar9->super_Output_data).field_0x1c & 2)" ( (binary_expression "(pOVar9->super_Output_data).field_0x1c & 2" (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00273334;" goto statement_identifier ;)) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (if_statement "if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;" if (parenthesized_expression "(((pOVar9->super_Output_data).field_0x1c & 2) == 0)" ( (binary_expression "((pOVar9->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((pOVar9->super_Output_data).field_0x1c & 2)" ( (binary_expression "(pOVar9->super_Output_data).field_0x1c & 2" (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_002732f6;" goto statement_identifier ;)) })) (expression_statement "piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4);" (assignment_expression "piVar2 = (int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" identifier = (cast_expression "(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar9->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar9->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar9->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar9->super_Output_data).data_size_" & (field_expression "(pOVar9->super_Output_data).data_size_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_);" (assignment_expression "uVar15 = (uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_)" identifier = (call_expression "(uint)((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_)" ( (binary_expression "(uint)oVar6 < (uint)(pOVar9->super_Output_data).data_size_" (cast_expression "(uint)oVar6" ( (type_descriptor "uint" type_identifier) ) identifier) < (field_expression "(uint)(pOVar9->super_Output_data).data_size_" (call_expression "(uint)(pOVar9->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) )))) ;) (expression_statement "iVar8 = iVar17 - *piVar2;" (assignment_expression "iVar8 = iVar17 - *piVar2" identifier = (binary_expression "iVar17 - *piVar2" identifier - (pointer_expression "*piVar2" * identifier))) ;) (if_statement "if ((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)\n              {\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }" if (parenthesized_expression "((SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0)" ( (binary_expression "(SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)) != (int)(iVar8 - uVar15) < 0" (parenthesized_expression "(SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15))" ( (binary_expression "SBORROW4(iVar17,*piVar2) != SBORROW4(iVar8,uVar15)" (call_expression "SBORROW4(iVar17,*piVar2)" identifier (argument_list "(iVar17,*piVar2)" ( identifier , (pointer_expression "*piVar2" * identifier) ))) != (call_expression "SBORROW4(iVar8,uVar15)" identifier (argument_list "(iVar8,uVar15)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar8 - uVar15) < 0" (cast_expression "(int)(iVar8 - uVar15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar8 - uVar15)" ( (binary_expression "iVar8 - uVar15" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }\n                pOVar9 = *ppOVar14;\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }\n                pcVar16 = pOVar9->name_;\n                pcVar10 = "%s: section changed size; relink with --incremental-full";\n                goto LAB_0027321b;\n              }" { (expression_statement "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];" (assignment_expression "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[9]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if ((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }" if (parenthesized_expression "((p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0))" ( (binary_expression "(p_Var4 != Output_section::do_output_section) &&\n                   (iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)" (parenthesized_expression "(p_Var4 != Output_section::do_output_section)" ( (binary_expression "p_Var4 != Output_section" identifier != identifier) (ERROR "::do_output_section" : : identifier) )) && (parenthesized_expression "(iVar17 = (*p_Var4)(pOVar9), iVar17 == 0)" ( (comma_expression "iVar17 = (*p_Var4)(pOVar9), iVar17 == 0" (assignment_expression "iVar17 = (*p_Var4)(pOVar9)" identifier = (call_expression "(*p_Var4)(pOVar9)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(pOVar9)" ( identifier )))) , (binary_expression "iVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");\n                }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x108a,"set_section_offsets")" identifier (argument_list "("../../gold/layout.cc",0x108a,"set_section_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_section_offsets"" " string_content ") ))) ;) })) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];" (assignment_expression "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[9]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }" if (parenthesized_expression "(p_Var4 != Output_section::do_output_section)" ( (binary_expression "p_Var4 != Output_section" identifier != identifier) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                }" { (expression_statement "pOVar9 = (Output_section *)(*p_Var4)(pOVar9);" (assignment_expression "pOVar9 = (Output_section *)(*p_Var4)(pOVar9)" identifier = (cast_expression "(Output_section *)(*p_Var4)(pOVar9)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var4)(pOVar9)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(pOVar9)" ( identifier ))))) ;) })) (expression_statement "pcVar16 = pOVar9->name_;" (assignment_expression "pcVar16 = pOVar9->name_" identifier = (field_expression "pOVar9->name_" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = "%s: section changed size; relink with --incremental-full";" (assignment_expression "pcVar10 = "%s: section changed size; relink with --incremental-full"" identifier = (string_literal ""%s: section changed size; relink with --incremental-full"" " string_content ")) ;) (goto_statement "goto LAB_0027321b;" goto statement_identifier ;) })) (if_statement "if ((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;" if (parenthesized_expression "((parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0))" ( (binary_expression "(parameters->options_ == (General_options *)0x0) ||\n                 ((parameters->debug_ & 0x10) == 0)" (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((parameters->debug_ & 0x10) == 0)" ( (binary_expression "(parameters->debug_ & 0x10) == 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00272f0f;" goto statement_identifier ;)) (expression_statement "this_00 = parameters->errors_;" (assignment_expression "this_00 = parameters->errors_" identifier = (field_expression "parameters->errors_" identifier -> field_identifier)) ;) (expression_statement "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];" (assignment_expression "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[9]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var4 == Output_section::do_output_section) {\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }\n              else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }" if (parenthesized_expression "(p_Var4 == Output_section::do_output_section)" ( (binary_expression "p_Var4 == Output_section" identifier == identifier) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\nLAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];\n                pOVar13 = pOVar9;\n                if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }\n                pcVar10 = pOVar9->name_;\n              }" { (labeled_statement "LAB_002730dc:\n                p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];" statement_identifier : (expression_statement "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9];" (assignment_expression "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[9]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[9]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;)) (expression_statement "pOVar13 = pOVar9;" (assignment_expression "pOVar13 = pOVar9" identifier = identifier) ;) (if_statement "if (p_Var4 != Output_section::do_output_section) {\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }" if (parenthesized_expression "(p_Var4 != Output_section::do_output_section)" ( (binary_expression "p_Var4 != Output_section" identifier != identifier) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\n                  pOVar9 = (Output_section *)(*p_Var4)(pOVar9);\n                  pOVar13 = *ppOVar14;\n                }" { (expression_statement "pOVar9 = (Output_section *)(*p_Var4)(pOVar9);" (assignment_expression "pOVar9 = (Output_section *)(*p_Var4)(pOVar9)" identifier = (cast_expression "(Output_section *)(*p_Var4)(pOVar9)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var4)(pOVar9)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(pOVar9)" ( identifier ))))) ;) (expression_statement "pOVar13 = *ppOVar14;" (assignment_expression "pOVar13 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) })) (expression_statement "pcVar10 = pOVar9->name_;" (assignment_expression "pcVar10 = pOVar9->name_" identifier = (field_expression "pOVar9->name_" identifier -> field_identifier)) ;) }) (else_clause "else {\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }" else (compound_statement "{\n                iVar17 = (*p_Var4)(pOVar9);\n                pOVar13 = *ppOVar14;\n                pOVar9 = pOVar13;\n                if (iVar17 != 0) goto LAB_002730dc;\n                pcVar10 = "(special)";\n              }" { (expression_statement "iVar17 = (*p_Var4)(pOVar9);" (assignment_expression "iVar17 = (*p_Var4)(pOVar9)" identifier = (call_expression "(*p_Var4)(pOVar9)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(pOVar9)" ( identifier )))) ;) (expression_statement "pOVar13 = *ppOVar14;" (assignment_expression "pOVar13 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "pOVar9 = pOVar13;" (assignment_expression "pOVar9 = pOVar13" identifier = identifier) ;) (if_statement "if (iVar17 != 0) goto LAB_002730dc;" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002730dc;" goto statement_identifier ;)) (expression_statement "pcVar10 = "(special)";" (assignment_expression "pcVar10 = "(special)"" identifier = (string_literal ""(special)"" " string_content ")) ;) }))) (if_statement "if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;" if (parenthesized_expression "(((pOVar13->super_Output_data).field_0x1c & 2) == 0)" ( (binary_expression "((pOVar13->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((pOVar13->super_Output_data).field_0x1c & 2)" ( (binary_expression "(pOVar13->super_Output_data).field_0x1c & 2" (field_expression "(pOVar13->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar13->super_Output_data)" ( (field_expression "pOVar13->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_002732f6;" goto statement_identifier ;)) (labeled_statement "Errors::debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);" statement_identifier : (ERROR ":" :) (expression_statement "debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);" (call_expression "debug(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10)" identifier (argument_list "(this_00,"set_section_offsets: %08lx %08lx %s",(int)lVar18,\n                            (int)(pOVar13->super_Output_data).data_size_,pcVar10)" ( identifier , (string_literal ""set_section_offsets: %08lx %08lx %s"" " string_content ") , (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)(pOVar13->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (field_expression "(pOVar13->super_Output_data).data_size_" (parenthesized_expression "(pOVar13->super_Output_data)" ( (field_expression "pOVar13->super_Output_data" identifier -> field_identifier) )) . field_identifier)) , identifier ))) ;)) (labeled_statement "LAB_00272f02:\n              pOVar9 = *ppOVar14;" statement_identifier : (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;)) (if_statement "if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }" if (parenthesized_expression "(((pOVar9->super_Output_data).field_0x1c & 2) == 0)" ( (binary_expression "((pOVar9->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((pOVar9->super_Output_data).field_0x1c & 2)" ( (binary_expression "(pOVar9->super_Output_data).field_0x1c & 2" (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }" { (labeled_statement "LAB_002732f6:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;)) })) }) (else_clause "else {\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }" else (compound_statement "{\n              pOVar9 = *ppOVar14;\n              p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];\n              if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }\n              if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }\n              bVar3 = (pOVar9->super_Output_data).field_0x1c;\n              if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }\n              (pOVar9->super_Output_data).offset_ = lVar18;\n              (pOVar9->super_Output_data).field_0x1c = bVar3 | 4;\n              if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }\n            }" { (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3];" (assignment_expression "p_Var4 = (pOVar9->super_Output_data)._vptr_Output_data[3]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[3]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var4 == Output_section::do_addralign) {\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }\n              else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }" if (parenthesized_expression "(p_Var4 == Output_section::do_addralign)" ( (binary_expression "p_Var4 == Output_section" identifier == identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n                local_3c = (int)pOVar9->addralign_;\n                local_38 = *(int *)((int)&pOVar9->addralign_ + 4);\n              }" { (expression_statement "local_3c = (int)pOVar9->addralign_;" (assignment_expression "local_3c = (int)pOVar9->addralign_" identifier = (cast_expression "(int)pOVar9->addralign_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar9->addralign_" identifier -> field_identifier))) ;) (expression_statement "local_38 = *(int *)((int)&pOVar9->addralign_ + 4);" (assignment_expression "local_38 = *(int *)((int)&pOVar9->addralign_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar9->addralign_ + 4)" * (cast_expression "(int *)((int)&pOVar9->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->addralign_ + 4)" ( (binary_expression "(int)&pOVar9->addralign_ + 4" (cast_expression "(int)&pOVar9->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->addralign_" & (field_expression "pOVar9->addralign_" identifier -> field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }" else (compound_statement "{\n                local_3c = (*p_Var4)(pOVar9);\n                pOVar9 = *ppOVar14;\n                local_38 = extraout_EDX;\n              }" { (expression_statement "local_3c = (*p_Var4)(pOVar9);" (assignment_expression "local_3c = (*p_Var4)(pOVar9)" identifier = (call_expression "(*p_Var4)(pOVar9)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(pOVar9)" ( identifier )))) ;) (expression_statement "pOVar9 = *ppOVar14;" (assignment_expression "pOVar9 = *ppOVar14" identifier = (pointer_expression "*ppOVar14" * identifier)) ;) (expression_statement "local_38 = extraout_EDX;" (assignment_expression "local_38 = extraout_EDX" identifier = identifier) ;) }))) (if_statement "if (local_38 != 0 || local_3c != 0) {\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }" if (parenthesized_expression "(local_38 != 0 || local_3c != 0)" ( (binary_expression "local_38 != 0 || local_3c != 0" (binary_expression "local_38 != 0" identifier != number_literal) || (binary_expression "local_3c != 0" identifier != number_literal)) )) (compound_statement "{\n                lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);\n                lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);\n              }" { (expression_statement "lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c);" (assignment_expression "lVar18 = lVar18 + -1 + CONCAT44(local_38,local_3c)" identifier = (binary_expression "lVar18 + -1 + CONCAT44(local_38,local_3c)" (binary_expression "lVar18 + -1" identifier + number_literal) + (call_expression "CONCAT44(local_38,local_3c)" identifier (argument_list "(local_38,local_3c)" ( identifier , identifier ))))) ;) (expression_statement "lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c);" (assignment_expression "lVar18 = CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c)" identifier (argument_list "((uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0)),(uint)lVar18 & -local_3c)" ( (binary_expression "(uint)((ulonglong)lVar18 >> 0x20) &\n                                  -(local_38 + (uint)(local_3c != 0))" (call_expression "(uint)((ulonglong)lVar18 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar18 >> 0x20)" ( (binary_expression "(ulonglong)lVar18 >> 0x20" (cast_expression "(ulonglong)lVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_38 + (uint)(local_3c != 0))" - (parenthesized_expression "(local_38 + (uint)(local_3c != 0))" ( (binary_expression "local_38 + (uint)(local_3c != 0)" identifier + (call_expression "(uint)(local_3c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )))) )))) , (binary_expression "(uint)lVar18 & -local_3c" (cast_expression "(uint)lVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_3c" - identifier)) )))) ;) })) (expression_statement "bVar3 = (pOVar9->super_Output_data).field_0x1c;" (assignment_expression "bVar3 = (pOVar9->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar3 & 4) != 0) {\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }" if (parenthesized_expression "((bVar3 & 4) != 0)" ( (binary_expression "(bVar3 & 4) != 0" (parenthesized_expression "(bVar3 & 4)" ( (binary_expression "bVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n              }" { (labeled_statement "LAB_00273315:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;)) })) (expression_statement "(pOVar9->super_Output_data).offset_ = lVar18;" (assignment_expression "(pOVar9->super_Output_data).offset_ = lVar18" (field_expression "(pOVar9->super_Output_data).offset_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pOVar9->super_Output_data).field_0x1c = bVar3 | 4;" (assignment_expression "(pOVar9->super_Output_data).field_0x1c = bVar3 | 4" (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar3 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar3 & 2) == 0) {\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }" if (parenthesized_expression "((bVar3 & 2) == 0)" ( (binary_expression "(bVar3 & 2) == 0" (parenthesized_expression "(bVar3 & 2)" ( (binary_expression "bVar3 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                (*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);\n                if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }\n                goto LAB_00272f02;\n              }" { (expression_statement "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9);" (call_expression "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])(pOVar9)" (parenthesized_expression "(*(pOVar9->super_Output_data)._vptr_Output_data[0xe])" ( (pointer_expression "*(pOVar9->super_Output_data)._vptr_Output_data[0xe]" * (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[0xe]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pOVar9)" ( identifier ))) ;) (if_statement "if (((pOVar9->super_Output_data).field_0x1c & 2) == 0) {\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }" if (parenthesized_expression "(((pOVar9->super_Output_data).field_0x1c & 2) == 0)" ( (binary_expression "((pOVar9->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((pOVar9->super_Output_data).field_0x1c & 2)" ( (binary_expression "(pOVar9->super_Output_data).field_0x1c & 2" (field_expression "(pOVar9->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n                }" { (labeled_statement "LAB_00273334:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;)) })) (goto_statement "goto LAB_00272f02;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00272f0f:\n            poVar1 = &(pOVar9->super_Output_data).data_size_;" statement_identifier : (expression_statement "poVar1 = &(pOVar9->super_Output_data).data_size_;" (assignment_expression "poVar1 = &(pOVar9->super_Output_data).data_size_" identifier = (pointer_expression "&(pOVar9->super_Output_data).data_size_" & (field_expression "(pOVar9->super_Output_data).data_size_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;)) (expression_statement "uVar15 = (uint)lVar18 + (int)*poVar1;" (assignment_expression "uVar15 = (uint)lVar18 + (int)*poVar1" identifier = (binary_expression "(uint)lVar18 + (int)*poVar1" (cast_expression "(uint)lVar18" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(int)*poVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*poVar1" * identifier)))) ;) (expression_statement "iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1);" (assignment_expression "iVar17 = (int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1)" identifier = (binary_expression "(int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4) +\n                     (uint)CARRY4((uint)lVar18,(uint)*poVar1)" (binary_expression "(int)((ulonglong)lVar18 >> 0x20) +\n                     *(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" (cast_expression "(int)((ulonglong)lVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar18 >> 0x20)" ( (binary_expression "(ulonglong)lVar18 >> 0x20" (cast_expression "(ulonglong)lVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (pointer_expression "*(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" * (cast_expression "(int *)((int)&(pOVar9->super_Output_data).data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar9->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar9->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar9->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar9->super_Output_data).data_size_" & (field_expression "(pOVar9->super_Output_data).data_size_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)lVar18,(uint)*poVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)lVar18,(uint)*poVar1)" identifier (argument_list "((uint)lVar18,(uint)*poVar1)" ( (cast_expression "(uint)lVar18" ( (type_descriptor "uint" type_identifier) ) identifier) , (binary_expression "(uint)*poVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) )))))) ;) (if_statement "if ((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0) {\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }" if (parenthesized_expression "((SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0)" ( (binary_expression "(SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))\n                != (int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0" (parenthesized_expression "(SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15)))" ( (binary_expression "SBORROW4(local_40,iVar17) != SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15))" (call_expression "SBORROW4(local_40,iVar17)" identifier (argument_list "(local_40,iVar17)" ( identifier , identifier ))) != (call_expression "SBORROW4(local_40 - iVar17,(uint)(local_44 < uVar15))" identifier (argument_list "(local_40 - iVar17,(uint)(local_44 < uVar15))" ( (binary_expression "local_40 - iVar17" identifier - identifier) , (call_expression "(uint)(local_44 < uVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < uVar15)" ( (binary_expression "local_44 < uVar15" identifier < identifier) ))) )))) )) != (binary_expression "(int)((local_40 - iVar17) - (uint)(local_44 < uVar15)) < 0" (cast_expression "(int)((local_40 - iVar17) - (uint)(local_44 < uVar15))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((local_40 - iVar17) - (uint)(local_44 < uVar15))" ( (binary_expression "(local_40 - iVar17) - (uint)(local_44 < uVar15)" (parenthesized_expression "(local_40 - iVar17)" ( (binary_expression "local_40 - iVar17" identifier - identifier) )) - (call_expression "(uint)(local_44 < uVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < uVar15)" ( (binary_expression "local_44 < uVar15" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n              lVar5 = CONCAT44(iVar17,uVar15);\n            }" { (expression_statement "lVar5 = CONCAT44(iVar17,uVar15);" (assignment_expression "lVar5 = CONCAT44(iVar17,uVar15)" identifier = (call_expression "CONCAT44(iVar17,uVar15)" identifier (argument_list "(iVar17,uVar15)" ( identifier , identifier )))) ;) })) (expression_statement "lVar18 = CONCAT44(iVar17,uVar15);" (assignment_expression "lVar18 = CONCAT44(iVar17,uVar15)" identifier = (call_expression "CONCAT44(iVar17,uVar15)" identifier (argument_list "(iVar17,uVar15)" ( identifier , identifier )))) ;) (if_statement "if (pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) {\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }" if (parenthesized_expression "(pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS)" ( (binary_expression "pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS" identifier != identifier) )) (compound_statement "{\n              Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);\n              lVar18 = CONCAT44(iVar17,uVar15);\n            }" { (expression_statement "Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0);" (binary_expression "Stringpool_template<char>::add(&this->namepool_,pOVar9->name_,false,(Key *)0x0)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,pOVar9->name_,false,(Key *)0x0)" identifier (argument_list "(&this->namepool_,pOVar9->name_,false,(Key *)0x0)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (field_expression "pOVar9->name_" identifier -> field_identifier) , false , (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "lVar18 = CONCAT44(iVar17,uVar15);" (assignment_expression "lVar18 = CONCAT44(iVar17,uVar15)" identifier = (call_expression "CONCAT44(iVar17,uVar15)" identifier (argument_list "(iVar17,uVar15)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;" else (if_statement "if ((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))) goto LAB_00272e42;" if (parenthesized_expression "((pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3))))" ( (binary_expression "(pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS) ||\n                (((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))" (parenthesized_expression "(pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS)" ( (binary_expression "pass != STRTAB_AFTER_POSTPROCESSING_SECTIONS_PASS" identifier != identifier) )) || (parenthesized_expression "(((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)))" ( (parenthesized_expression "((pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3))" ( (binary_expression "(pOVar9->field_0x90 & 0x10) != 0 && (pOVar9->type_ == 3)" (binary_expression "(pOVar9->field_0x90 & 0x10) != 0" (parenthesized_expression "(pOVar9->field_0x90 & 0x10)" ( (binary_expression "pOVar9->field_0x90 & 0x10" (field_expression "pOVar9->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) && (parenthesized_expression "(pOVar9->type_ == 3)" ( (binary_expression "pOVar9->type_ == 3" (field_expression "pOVar9->type_" identifier -> field_identifier) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00272e42;" goto statement_identifier ;)))))) })) (expression_statement "ppOVar14 = ppOVar14 + 1;" (assignment_expression "ppOVar14 = ppOVar14 + 1" identifier = (binary_expression "ppOVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14)" ( (binary_expression "(this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != ppOVar14" (field_expression "(this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish" (field_expression "(this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl" (binary_expression "(this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->unattached_section_list_).\n             super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->unattached_section_list_).\n             super__Vector_base<gold" (field_expression "(this->unattached_section_list_).\n             super__Vector_base" (parenthesized_expression "(this->unattached_section_list_)" ( (field_expression "this->unattached_section_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (return_statement "return lVar5;" return identifier ;) })))
(translation_unit "undefined8 FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}\n\n" (function_definition "undefined8 FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}" type_identifier (function_declarator "FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)" identifier (parameter_list "(int param_1,uint param_2,uint param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "longlong lVar13;" type_identifier identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (expression_statement "FUN_00074f0e();" (call_expression "FUN_00074f0e()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x13c);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x13c)" identifier = (pointer_expression "*(int **)(param_1 + 0x13c)" * (cast_expression "(int **)(param_1 + 0x13c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x13c)" ( (binary_expression "param_1 + 0x13c" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" if (parenthesized_expression "(piVar8 == *(int **)(param_1 + 0x140))" ( (binary_expression "piVar8 == *(int **)(param_1 + 0x140)" identifier == (pointer_expression "*(int **)(param_1 + 0x140)" * (cast_expression "(int **)(param_1 + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) ))))) )) (compound_statement "{\n    local_44 = param_2;\n    local_40 = param_3;\n  }" { (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" identifier = identifier) ;) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" identifier = identifier) ;) }) (else_clause "else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" else (compound_statement "{\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" { (expression_statement "piVar7 = (int *)(unaff_EBP + 0x377a02);" (assignment_expression "piVar7 = (int *)(unaff_EBP + 0x377a02)" identifier = (cast_expression "(int *)(unaff_EBP + 0x377a02)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x377a02)" ( (binary_expression "unaff_EBP + 0x377a02" identifier + number_literal) )))) ;) (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" identifier = identifier) ;) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" identifier = identifier) ;) (expression_statement "uVar9 = param_2;" (assignment_expression "uVar9 = param_2" identifier = identifier) ;) (expression_statement "uVar10 = param_3;" (assignment_expression "uVar10 = param_3" identifier = identifier) ;) (do_statement "do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);" do (compound_statement "{\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    }" { (expression_statement "iVar4 = *piVar8;" (assignment_expression "iVar4 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }" if (parenthesized_expression "((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0))))" ( (binary_expression "(iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))" (parenthesized_expression "(iVar4 != *(int *)(param_1 + 0x174))" ( (binary_expression "iVar4 != *(int *)(param_1 + 0x174)" identifier != (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) ))))) )) && (parenthesized_expression "(((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))" ( (parenthesized_expression "((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0))" ( (binary_expression "(*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)" (binary_expression "(*(byte *)(iVar4 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x1c) & 4)" ( (binary_expression "*(byte *)(iVar4 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar4 + 0x1c)" * (cast_expression "(byte *)(iVar4 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(iVar4 + 0x1c) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x1c) & 2)" ( (binary_expression "*(byte *)(iVar4 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar4 + 0x1c)" * (cast_expression "(byte *)(iVar4 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }" { (if_statement "if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }" { (if_statement "if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }" if (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x20)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }" { (expression_statement "FUN_002c7390(iVar4);" (call_expression "FUN_002c7390(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" * (cast_expression "(undefined1 *)(param_1 + 0x1ca)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ca)" ( (binary_expression "param_1 + 0x1ca" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = *piVar8;" (assignment_expression "iVar4 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) })) (if_statement "if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;" if (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) == 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00272e42;" goto statement_identifier ;)) }) (else_clause "else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" else (if_statement "if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" if (parenthesized_expression "(param_4 == 1)" ( (binary_expression "param_4 == 1" identifier == number_literal) )) (compound_statement "{\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }" { (if_statement "if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }" if (parenthesized_expression "(((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3))" ( (binary_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)" (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x50) != 3)" ( (binary_expression "*(int *)(iVar4 + 0x50) != 3" (pointer_expression "*(int *)(iVar4 + 0x50)" * (cast_expression "(int *)(iVar4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }" { (labeled_statement "LAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);" statement_identifier : (expression_statement "cVar3 = FUN_0030aff0(*piVar7);" (assignment_expression "cVar3 = FUN_0030aff0(*piVar7)" identifier = (call_expression "FUN_0030aff0(*piVar7)" identifier (argument_list "(*piVar7)" ( (pointer_expression "*piVar7" * identifier) )))) ;)) (if_statement "if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }" { (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" if (parenthesized_expression "(*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596))" ( (binary_expression "*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)" (pointer_expression "*(code **)(*piVar5 + 0xc)" * (cast_expression "(code **)(*piVar5 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) )))) == (cast_expression "(code *)(unaff_EBP + -0x171596)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x171596)" ( (binary_expression "unaff_EBP + -0x171596" identifier + number_literal) )))) )) (compound_statement "{\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }" { (expression_statement "lVar13 = *(longlong *)(piVar5 + 9);" (assignment_expression "lVar13 = *(longlong *)(piVar5 + 9)" identifier = (pointer_expression "*(longlong *)(piVar5 + 9)" * (cast_expression "(longlong *)(piVar5 + 9)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 9)" ( (binary_expression "piVar5 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" else (compound_statement "{\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" { (expression_statement "lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);" (assignment_expression "lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0xc))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0xc))" ( (pointer_expression "**(code **)(*piVar5 + 0xc)" * (pointer_expression "*(code **)(*piVar5 + 0xc)" * (cast_expression "(code **)(*piVar5 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0xc)" ( (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) }))) (expression_statement "local_38 = (int)((ulonglong)lVar13 >> 0x20);" (assignment_expression "local_38 = (int)((ulonglong)lVar13 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar13 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar13 >> 0x20)" ( (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_3c = (int)lVar13;" (assignment_expression "local_3c = (int)lVar13" identifier = (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }" { (expression_statement "lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);" (assignment_expression "lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" identifier = (binary_expression "lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" identifier + (call_expression "CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" identifier (argument_list "((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" ( (binary_expression "(uVar10 - 1) + (uint)(uVar9 != 0)" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )))) , (binary_expression "uVar9 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar9 = (uint)lVar13 & -local_3c;" (assignment_expression "uVar9 = (uint)lVar13 & -local_3c" identifier = (binary_expression "(uint)lVar13 & -local_3c" (cast_expression "(uint)lVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_3c" - identifier))) ;) (expression_statement "uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));" (assignment_expression "uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0))" identifier = (binary_expression "(uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0))" (call_expression "(uint)((ulonglong)lVar13 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar13 >> 0x20)" ( (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_38 + (uint)(local_3c != 0))" - (parenthesized_expression "(local_38 + (uint)(local_3c != 0))" ( (binary_expression "local_38 + (uint)(local_3c != 0)" identifier + (call_expression "(uint)(local_3c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )))) ))))) ;) })) (expression_statement "lVar13 = CONCAT44(uVar10,uVar9);" (assignment_expression "lVar13 = CONCAT44(uVar10,uVar9)" identifier = (call_expression "CONCAT44(uVar10,uVar9)" identifier (argument_list "(uVar10,uVar9)" ( identifier , identifier )))) ;) (expression_statement "bVar1 = *(byte *)(piVar5 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar5 + 7)" identifier = (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }" { (labeled_statement "LAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);" statement_identifier : (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386)" identifier (argument_list "(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386)" ( (binary_expression "unaff_EBP + 0x1da597" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x218386" identifier + number_literal) ))) ;)) })) (expression_statement "piVar5[5] = uVar9;" (assignment_expression "piVar5[5] = uVar9" (subscript_expression "piVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[6] = uVar10;" (assignment_expression "piVar5[6] = uVar10" (subscript_expression "piVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(piVar5 + 7) = bVar1 | 4;" (assignment_expression "*(byte *)(piVar5 + 7) = bVar1 | 4" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }" { (expression_statement "(**(code **)(*piVar5 + 0x38))(piVar5);" (call_expression "(**(code **)(*piVar5 + 0x38))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x38))" ( (pointer_expression "**(code **)(*piVar5 + 0x38)" * (pointer_expression "*(code **)(*piVar5 + 0x38)" * (cast_expression "(code **)(*piVar5 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x38)" ( (binary_expression "*piVar5 + 0x38" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }" { (labeled_statement "LAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);" statement_identifier : (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e)" identifier (argument_list "(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e)" ( (binary_expression "unaff_EBP + 0x1da597" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x21845e" identifier + number_literal) ))) ;)) })) (goto_statement "goto LAB_00272f02;" goto statement_identifier ;) })) }) (else_clause "else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" else (compound_statement "{\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" { (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }" { (expression_statement "(**(code **)(iVar4 + 0x34))(piVar5);" (call_expression "(**(code **)(iVar4 + 0x34))(piVar5)" (parenthesized_expression "(**(code **)(iVar4 + 0x34))" ( (pointer_expression "**(code **)(iVar4 + 0x34)" * (pointer_expression "*(code **)(iVar4 + 0x34)" * (cast_expression "(code **)(iVar4 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) })) (expression_statement "uVar9 = piVar5[3];" (assignment_expression "uVar9 = piVar5[3]" identifier = (subscript_expression "piVar5[3]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar5[4];" (assignment_expression "iVar12 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (if_statement "if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" if (parenthesized_expression "(*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596))" ( (binary_expression "*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)" (pointer_expression "*(code **)(iVar4 + 0xc)" * (cast_expression "(code **)(iVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) == (cast_expression "(code *)(unaff_EBP + -0x171596)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x171596)" ( (binary_expression "unaff_EBP + -0x171596" identifier + number_literal) )))) )) (compound_statement "{\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }" { (expression_statement "uVar14 = *(undefined8 *)(piVar5 + 9);" (assignment_expression "uVar14 = *(undefined8 *)(piVar5 + 9)" identifier = (pointer_expression "*(undefined8 *)(piVar5 + 9)" * (cast_expression "(undefined8 *)(piVar5 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 9)" ( (binary_expression "piVar5 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" else (compound_statement "{\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" { (expression_statement "uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);" (assignment_expression "uVar14 = (**(code **)(iVar4 + 0xc))(piVar5)" identifier = (call_expression "(**(code **)(iVar4 + 0xc))(piVar5)" (parenthesized_expression "(**(code **)(iVar4 + 0xc))" ( (pointer_expression "**(code **)(iVar4 + 0xc)" * (pointer_expression "*(code **)(iVar4 + 0xc)" * (cast_expression "(code **)(iVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) }))) (expression_statement "lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);" (assignment_expression "lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" identifier = (call_expression "FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" identifier (argument_list "(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }" if (parenthesized_expression "(lVar13 == -1)" ( (binary_expression "lVar13 == -1" identifier == number_literal) )) (compound_statement "{\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }" { (if_statement "if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }" if (parenthesized_expression "((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0))" ( (binary_expression "(*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)" (parenthesized_expression "(*(int *)(*piVar7 + 8) != 0)" ( (binary_expression "*(int *)(*piVar7 + 8) != 0" (pointer_expression "*(int *)(*piVar7 + 8)" * (cast_expression "(int *)(*piVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 8)" ( (binary_expression "*piVar7 + 8" (pointer_expression "*piVar7" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)" ( (binary_expression "(*(byte *)(*piVar7 + 0x14) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*piVar7 + 0x14) & 0x10)" ( (binary_expression "*(byte *)(*piVar7 + 0x14) & 0x10" (pointer_expression "*(byte *)(*piVar7 + 0x14)" * (cast_expression "(byte *)(*piVar7 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x14)" ( (binary_expression "*piVar7 + 0x14" (pointer_expression "*piVar7" * identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                  FUN_002712d0(param_1 + 0x248);\n                }" { (expression_statement "FUN_002712d0(param_1 + 0x248);" (call_expression "FUN_002712d0(param_1 + 0x248)" identifier (argument_list "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))) ;) })) (expression_statement "piVar7 = (int *)*piVar8;" (assignment_expression "piVar7 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }" if (parenthesized_expression "(*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar7 + 0x24)" * (cast_expression "(code **)(*piVar7 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x24)" ( (binary_expression "*piVar7 + 0x24" (pointer_expression "*piVar7" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }" { (expression_statement "piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);" (assignment_expression "piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7)" identifier = (cast_expression "(int *)(**(code **)(*piVar7 + 0x24))(piVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar7 + 0x24))(piVar7)" (parenthesized_expression "(**(code **)(*piVar7 + 0x24))" ( (pointer_expression "**(code **)(*piVar7 + 0x24)" * (pointer_expression "*(code **)(*piVar7 + 0x24)" * (cast_expression "(code **)(*piVar7 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x24)" ( (binary_expression "*piVar7 + 0x24" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))))) ;) })) (if_statement "if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }" { (expression_statement "FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);" (call_expression "FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e)" identifier (argument_list "(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e)" ( (binary_expression "unaff_EBP + 0x21718b" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x21835e" identifier + number_literal) ))) ;) })) (expression_statement "piVar8 = (int *)*piVar8;" (assignment_expression "piVar8 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" if (parenthesized_expression "(*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" { (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8)" identifier = (cast_expression "(int *)(**(code **)(*piVar8 + 0x24))(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar8 + 0x24))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x24))" ( (pointer_expression "**(code **)(*piVar8 + 0x24)" * (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))))) ;) })) (expression_statement "iVar12 = piVar8[8];" (assignment_expression "iVar12 = piVar8[8]" identifier = (subscript_expression "piVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = unaff_EBP + 0x2178da;" (assignment_expression "iVar4 = unaff_EBP + 0x2178da" identifier = (binary_expression "unaff_EBP + 0x2178da" identifier + number_literal)) ;) (labeled_statement "LAB_0027321b:\n                uVar6 = gettext(iVar4);" statement_identifier : (expression_statement "uVar6 = gettext(iVar4);" (assignment_expression "uVar6 = gettext(iVar4)" identifier = (call_expression "gettext(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;)) (expression_statement "FUN_0023b7e0(uVar6,iVar12);" (call_expression "FUN_0023b7e0(uVar6,iVar12)" identifier (argument_list "(uVar6,iVar12)" ( identifier , identifier ))) ;) })) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(piVar5 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar5 + 7)" identifier = (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_00273315;" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00273315;" goto statement_identifier ;)) (expression_statement "*(longlong *)(piVar5 + 5) = lVar13;" (assignment_expression "*(longlong *)(piVar5 + 5) = lVar13" (pointer_expression "*(longlong *)(piVar5 + 5)" * (cast_expression "(longlong *)(piVar5 + 5)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 5)" ( (binary_expression "piVar5 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(piVar5 + 7) = bVar1 | 4;" (assignment_expression "*(byte *)(piVar5 + 7) = bVar1 | 4" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 4" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }" { (expression_statement "(**(code **)(*piVar5 + 0x38))(piVar5);" (call_expression "(**(code **)(*piVar5 + 0x38))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x38))" ( (pointer_expression "**(code **)(*piVar5 + 0x38)" * (pointer_expression "*(code **)(*piVar5 + 0x38)" * (cast_expression "(code **)(*piVar5 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x38)" ( (binary_expression "*piVar5 + 0x38" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00273334;" goto statement_identifier ;)) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_002732f6;" goto statement_identifier ;)) })) (expression_statement "uVar9 = (uint)(uVar9 < (uint)piVar5[3]);" (assignment_expression "uVar9 = (uint)(uVar9 < (uint)piVar5[3])" identifier = (call_expression "(uint)(uVar9 < (uint)piVar5[3])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < (uint)piVar5[3])" ( (binary_expression "uVar9 < (uint)piVar5[3]" identifier < (cast_expression "(uint)piVar5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar5[3]" identifier [ number_literal ]))) )))) ;) (expression_statement "iVar4 = iVar12 - piVar5[4];" (assignment_expression "iVar4 = iVar12 - piVar5[4]" identifier = (binary_expression "iVar12 - piVar5[4]" identifier - (subscript_expression "piVar5[4]" identifier [ number_literal ]))) ;) (if_statement "if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }" if (parenthesized_expression "((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)" ( (binary_expression "(SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0" (parenthesized_expression "(SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9))" ( (binary_expression "SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)" (call_expression "SBORROW4(iVar12,piVar5[4])" identifier (argument_list "(iVar12,piVar5[4])" ( identifier , (subscript_expression "piVar5[4]" identifier [ number_literal ]) ))) != (call_expression "SBORROW4(iVar4,uVar9)" identifier (argument_list "(iVar4,uVar9)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar4 - uVar9) < 0" (cast_expression "(int)(iVar4 - uVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar4 - uVar9)" ( (binary_expression "iVar4 - uVar9" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }" { (if_statement "if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }" if (parenthesized_expression "((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0))" ( (binary_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)" (parenthesized_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) && (parenthesized_expression "(iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" ( (pointer_expression "**(code **)(*piVar5 + 0x24)" * (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }" { (expression_statement "FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);" (call_expression "FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e)" identifier (argument_list "(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e)" ( (binary_expression "unaff_EBP + 0x21718b" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x21835e" identifier + number_literal) ))) ;) })) (expression_statement "piVar8 = (int *)*piVar8;" (assignment_expression "piVar8 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" if (parenthesized_expression "(*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" { (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8)" identifier = (cast_expression "(int *)(**(code **)(*piVar8 + 0x24))(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar8 + 0x24))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x24))" ( (pointer_expression "**(code **)(*piVar8 + 0x24)" * (pointer_expression "*(code **)(*piVar8 + 0x24)" * (cast_expression "(code **)(*piVar8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 0x24)" ( (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))))) ;) })) (expression_statement "iVar12 = piVar8[8];" (assignment_expression "iVar12 = piVar8[8]" identifier = (subscript_expression "piVar8[8]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = unaff_EBP + 0x21791e;" (assignment_expression "iVar4 = unaff_EBP + 0x21791e" identifier = (binary_expression "unaff_EBP + 0x21791e" identifier + number_literal)) ;) (goto_statement "goto LAB_0027321b;" goto statement_identifier ;) })) (expression_statement "puVar2 = (undefined4 *)*piVar7;" (assignment_expression "puVar2 = (undefined4 *)*piVar7" identifier = (cast_expression "(undefined4 *)*piVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (if_statement "if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;" if (parenthesized_expression "((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0))" ( (binary_expression "(puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)" (parenthesized_expression "(puVar2[2] == 0)" ( (binary_expression "puVar2[2] == 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((*(byte *)(puVar2 + 5) & 0x10) == 0)" ( (binary_expression "(*(byte *)(puVar2 + 5) & 0x10) == 0" (parenthesized_expression "(*(byte *)(puVar2 + 5) & 0x10)" ( (binary_expression "*(byte *)(puVar2 + 5) & 0x10" (pointer_expression "*(byte *)(puVar2 + 5)" * (cast_expression "(byte *)(puVar2 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 5)" ( (binary_expression "puVar2 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00272f0f;" goto statement_identifier ;)) (expression_statement "uVar6 = *puVar2;" (assignment_expression "uVar6 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (if_statement "if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) )))) == (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }" { (labeled_statement "LAB_002730dc:\n                piVar11 = piVar5;" statement_identifier : (expression_statement "piVar11 = piVar5;" (assignment_expression "piVar11 = piVar5" identifier = identifier) ;)) (if_statement "if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" ( (binary_expression "*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != (cast_expression "(code *)(unaff_EBP + -0x12ed36)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x12ed36)" ( (binary_expression "unaff_EBP + -0x12ed36" identifier + number_literal) )))) )) (compound_statement "{\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }" { (expression_statement "piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);" (assignment_expression "piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5)" identifier = (cast_expression "(int *)(**(code **)(*piVar5 + 0x24))(piVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" ( (pointer_expression "**(code **)(*piVar5 + 0x24)" * (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))))) ;) (expression_statement "piVar11 = (int *)*piVar8;" (assignment_expression "piVar11 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) })) (expression_statement "iVar4 = piVar5[8];" (assignment_expression "iVar4 = piVar5[8]" identifier = (subscript_expression "piVar5[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" else (compound_statement "{\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" { (expression_statement "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);" (assignment_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" ( (pointer_expression "**(code **)(*piVar5 + 0x24)" * (pointer_expression "*(code **)(*piVar5 + 0x24)" * (cast_expression "(code **)(*piVar5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x24)" ( (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "piVar11 = (int *)*piVar8;" (assignment_expression "piVar11 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "piVar5 = piVar11;" (assignment_expression "piVar5 = piVar11" identifier = identifier) ;) (if_statement "if (iVar4 != 0) goto LAB_002730dc;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002730dc;" goto statement_identifier ;)) (expression_statement "iVar4 = unaff_EBP + 0x217273;" (assignment_expression "iVar4 = unaff_EBP + 0x217273" identifier = (binary_expression "unaff_EBP + 0x217273" identifier + number_literal)) ;) }))) (if_statement "if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;" if (parenthesized_expression "((*(byte *)(piVar11 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar11 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar11 + 7) & 2)" ( (binary_expression "*(byte *)(piVar11 + 7) & 2" (pointer_expression "*(byte *)(piVar11 + 7)" * (cast_expression "(byte *)(piVar11 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11 + 7)" ( (binary_expression "piVar11 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_002732f6;" goto statement_identifier ;)) (expression_statement "FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);" (call_expression "FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4)" identifier (argument_list "(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4)" ( identifier , (binary_expression "unaff_EBP + 0x21795a" identifier + number_literal) , (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) , (subscript_expression "piVar11[3]" identifier [ number_literal ]) , identifier ))) ;) (labeled_statement "LAB_00272f02:\n              piVar5 = (int *)*piVar8;" statement_identifier : (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;)) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }" if (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" ( (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }" { (labeled_statement "LAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);" statement_identifier : (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2)" identifier (argument_list "(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2)" ( (binary_expression "unaff_EBP + 0x1da597" identifier + number_literal) , number_literal , (binary_expression "unaff_EBP + 0x2186b2" identifier + number_literal) ))) ;)) })) }))) (labeled_statement "LAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];" statement_identifier : (expression_statement "uVar9 = (uint)lVar13 + piVar5[3];" (assignment_expression "uVar9 = (uint)lVar13 + piVar5[3]" identifier = (binary_expression "(uint)lVar13 + piVar5[3]" (cast_expression "(uint)lVar13" ( (type_descriptor "uint" type_identifier) ) identifier) + (subscript_expression "piVar5[3]" identifier [ number_literal ]))) ;)) (expression_statement "uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);" (assignment_expression "uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3])" identifier = (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3])" (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + piVar5[4]" (cast_expression "(int)((ulonglong)lVar13 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar13 >> 0x20)" ( (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (subscript_expression "piVar5[4]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4((uint)lVar13,piVar5[3])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)lVar13,piVar5[3])" identifier (argument_list "((uint)lVar13,piVar5[3])" ( (cast_expression "(uint)lVar13" ( (type_descriptor "uint" type_identifier) ) identifier) , (subscript_expression "piVar5[3]" identifier [ number_literal ]) )))))) ;) (if_statement "if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }" if (parenthesized_expression "((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0)" ( (binary_expression "(SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0" (parenthesized_expression "(SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))" ( (binary_expression "SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9))" (call_expression "SBORROW4(local_40,uVar10)" identifier (argument_list "(local_40,uVar10)" ( identifier , identifier ))) != (call_expression "SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9))" identifier (argument_list "(local_40 - uVar10,(uint)(local_44 < uVar9))" ( (binary_expression "local_40 - uVar10" identifier - identifier) , (call_expression "(uint)(local_44 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < uVar9)" ( (binary_expression "local_44 < uVar9" identifier < identifier) ))) )))) )) != (binary_expression "(int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0" (cast_expression "(int)((local_40 - uVar10) - (uint)(local_44 < uVar9))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((local_40 - uVar10) - (uint)(local_44 < uVar9))" ( (binary_expression "(local_40 - uVar10) - (uint)(local_44 < uVar9)" (parenthesized_expression "(local_40 - uVar10)" ( (binary_expression "local_40 - uVar10" identifier - identifier) )) - (call_expression "(uint)(local_44 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < uVar9)" ( (binary_expression "local_44 < uVar9" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }" { (expression_statement "local_40 = uVar10;" (assignment_expression "local_40 = uVar10" identifier = identifier) ;) (expression_statement "local_44 = uVar9;" (assignment_expression "local_44 = uVar9" identifier = identifier) ;) })) (if_statement "if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }" if (parenthesized_expression "(param_4 != 2)" ( (binary_expression "param_4 != 2" identifier != number_literal) )) (compound_statement "{\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }" { (expression_statement "FUN_00349de0(param_1 + 8,piVar5[8],0,0);" (call_expression "FUN_00349de0(param_1 + 8,piVar5[8],0,0)" identifier (argument_list "(param_1 + 8,piVar5[8],0,0)" ( (binary_expression "param_1 + 8" identifier + number_literal) , (subscript_expression "piVar5[8]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) })) })) }) (else_clause "else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" else (if_statement "if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" if (parenthesized_expression "((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))" ( (binary_expression "(param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)))" (parenthesized_expression "(param_4 != 2)" ( (binary_expression "param_4 != 2" identifier != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)))" ( (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))" ( (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)" (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" ( (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" * (cast_expression "(byte *)(iVar4 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x90)" ( (binary_expression "iVar4 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(*(int *)(iVar4 + 0x50) == 3)" ( (binary_expression "*(int *)(iVar4 + 0x50) == 3" (pointer_expression "*(int *)(iVar4 + 0x50)" * (cast_expression "(int *)(iVar4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x50)" ( (binary_expression "iVar4 + 0x50" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00272e42;" goto statement_identifier ;)))))) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x140) != piVar8)" ( (binary_expression "*(int **)(param_1 + 0x140) != piVar8" (pointer_expression "*(int **)(param_1 + 0x140)" * (cast_expression "(int **)(param_1 + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) != identifier) )) ;) }))) (return_statement "return CONCAT44(local_40,local_44);" return (call_expression "CONCAT44(local_40,local_44)" identifier (argument_list "(local_40,local_44)" ( identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) || (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 - 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 IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( 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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (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 IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (pointer_expression * IDENT) + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) && (parenthesized_expression ( (comma_expression (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 )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (subscript_expression IDENT [ LIT ]) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) , LIT , LIT ))) ;) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)))))) })) (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) )) ;) }))) (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "undefined8 FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)\n\n{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}" (type_identifier "undefined8") (function_declarator "FUN_00272dc0(int param_1,uint param_2,uint param_3,int param_4)" (identifier "FUN_00272dc0") (parameter_list "(int param_1,uint param_2,uint param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int unaff_EBP;\n  int iVar12;\n  longlong lVar13;\n  undefined8 uVar14;\n  uint local_44;\n  uint local_40;\n  int local_3c;\n  int local_38;\n  \n  FUN_00074f0e();\n  piVar8 = *(int **)(param_1 + 0x13c);\n  if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }\n  return CONCAT44(local_40,local_44);\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "longlong lVar13;" (type_identifier "longlong") (identifier "lVar13") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (expression_statement "FUN_00074f0e();" (call_expression "FUN_00074f0e()" (identifier "FUN_00074f0e") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8 = *(int **)(param_1 + 0x13c);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x13c)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x13c)" (* "*") (cast_expression "(int **)(param_1 + 0x13c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x13c)" (( "(") (binary_expression "param_1 + 0x13c" (identifier "param_1") (+ "+") (number_literal "0x13c")) () ")"))))) (; ";")) (if_statement "if (piVar8 == *(int **)(param_1 + 0x140)) {\n    local_44 = param_2;\n    local_40 = param_3;\n  }\n  else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" (if "if") (parenthesized_expression "(piVar8 == *(int **)(param_1 + 0x140))" (( "(") (binary_expression "piVar8 == *(int **)(param_1 + 0x140)" (identifier "piVar8") (== "==") (pointer_expression "*(int **)(param_1 + 0x140)" (* "*") (cast_expression "(int **)(param_1 + 0x140)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")"))))) () ")")) (compound_statement "{\n    local_44 = param_2;\n    local_40 = param_3;\n  }" ({ "{") (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" (identifier "local_44") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" (identifier "local_40") (= "=") (identifier "param_3")) (; ";")) (} "}")) (else_clause "else {\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" (else "else") (compound_statement "{\n    piVar7 = (int *)(unaff_EBP + 0x377a02);\n    local_44 = param_2;\n    local_40 = param_3;\n    uVar9 = param_2;\n    uVar10 = param_3;\n    do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);\n  }" ({ "{") (expression_statement "piVar7 = (int *)(unaff_EBP + 0x377a02);" (assignment_expression "piVar7 = (int *)(unaff_EBP + 0x377a02)" (identifier "piVar7") (= "=") (cast_expression "(int *)(unaff_EBP + 0x377a02)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x377a02)" (( "(") (binary_expression "unaff_EBP + 0x377a02" (identifier "unaff_EBP") (+ "+") (number_literal "0x377a02")) () ")")))) (; ";")) (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" (identifier "local_44") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" (identifier "local_40") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar9 = param_2;" (assignment_expression "uVar9 = param_2" (identifier "uVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar10 = param_3;" (assignment_expression "uVar10 = param_3" (identifier "uVar10") (= "=") (identifier "param_3")) (; ";")) (do_statement "do {\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    } while (*(int **)(param_1 + 0x140) != piVar8);" (do "do") (compound_statement "{\n      iVar4 = *piVar8;\n      if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }\n      piVar8 = piVar8 + 1;\n    }" ({ "{") (expression_statement "iVar4 = *piVar8;" (assignment_expression "iVar4 = *piVar8" (identifier "iVar4") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (if_statement "if ((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }" (if "if") (parenthesized_expression "((iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0))))" (( "(") (binary_expression "(iVar4 != *(int *)(param_1 + 0x174)) &&\n         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))" (parenthesized_expression "(iVar4 != *(int *)(param_1 + 0x174))" (( "(") (binary_expression "iVar4 != *(int *)(param_1 + 0x174)" (identifier "iVar4") (!= "!=") (pointer_expression "*(int *)(param_1 + 0x174)" (* "*") (cast_expression "(int *)(param_1 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))" (( "(") (parenthesized_expression "((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0))" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)" (binary_expression "(*(byte *)(iVar4 + 0x1c) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x1c) & 4)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x1c) & 4" (pointer_expression "*(byte *)(iVar4 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar4 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(iVar4 + 0x1c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x1c) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x1c) & 2)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x1c) & 2" (pointer_expression "*(byte *)(iVar4 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar4 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;\n      }" ({ "{") (if_statement "if (param_4 == 0) {\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }\n        else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }\n          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;\n        }" ({ "{") (if_statement "if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x90) & 0x20" (pointer_expression "*(byte *)(iVar4 + 0x90)" (* "*") (cast_expression "(byte *)(iVar4 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x90)" (( "(") (binary_expression "iVar4 + 0x90" (identifier "iVar4") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_002c7390(iVar4);\n            *(undefined1 *)(param_1 + 0x1ca) = 1;\n            iVar4 = *piVar8;\n          }" ({ "{") (expression_statement "FUN_002c7390(iVar4);" (call_expression "FUN_002c7390(iVar4)" (identifier "FUN_002c7390") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x1ca) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x1ca) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x1ca)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x1ca)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1ca)" (( "(") (binary_expression "param_1 + 0x1ca" (identifier "param_1") (+ "+") (number_literal "0x1ca")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar4 = *piVar8;" (assignment_expression "iVar4 = *piVar8" (identifier "iVar4") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;" (if "if") (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" (* "*") (cast_expression "(byte *)(iVar4 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x90)" (( "(") (binary_expression "iVar4 + 0x90" (identifier "iVar4") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00272e42;" (goto "goto") (statement_identifier "LAB_00272e42") (; ";"))) (} "}")) (else_clause "else if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" (else "else") (if_statement "if (param_4 == 1) {\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }\n        else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" (if "if") (parenthesized_expression "(param_4 == 1)" (( "(") (binary_expression "param_4 == 1" (identifier "param_4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }\n        }" ({ "{") (if_statement "if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }" (if "if") (parenthesized_expression "(((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3))" (( "(") (binary_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)" (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" (* "*") (cast_expression "(byte *)(iVar4 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x90)" (( "(") (binary_expression "iVar4 + 0x90" (identifier "iVar4") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x50) != 3)" (( "(") (binary_expression "*(int *)(iVar4 + 0x50) != 3" (pointer_expression "*(int *)(iVar4 + 0x50)" (* "*") (cast_expression "(int *)(iVar4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\nLAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);\n            if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }\nLAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];\n            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);\n            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }\n            if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }\n          }" ({ "{") (labeled_statement "LAB_00272e42:\n            cVar3 = FUN_0030aff0(*piVar7);" (statement_identifier "LAB_00272e42") (: ":") (expression_statement "cVar3 = FUN_0030aff0(*piVar7);" (assignment_expression "cVar3 = FUN_0030aff0(*piVar7)" (identifier "cVar3") (= "=") (call_expression "FUN_0030aff0(*piVar7)" (identifier "FUN_0030aff0") (argument_list "(*piVar7)" (( "(") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) () ")")))) (; ";"))) (if_statement "if (cVar3 == '\0') {\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }\n            else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              piVar5 = (int *)*piVar8;\n              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }\n              local_38 = (int)((ulonglong)lVar13 >> 0x20);\n              local_3c = (int)lVar13;\n              if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }\n              lVar13 = CONCAT44(uVar10,uVar9);\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }\n              piVar5[5] = uVar9;\n              piVar5[6] = uVar10;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }\n            }" ({ "{") (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }\n              else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" (if "if") (parenthesized_expression "(*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596))" (( "(") (binary_expression "*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)" (pointer_expression "*(code **)(*piVar5 + 0xc)" (* "*") (cast_expression "(code **)(*piVar5 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0xc)" (( "(") (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (cast_expression "(code *)(unaff_EBP + -0x171596)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x171596)" (( "(") (binary_expression "unaff_EBP + -0x171596" (identifier "unaff_EBP") (+ "+") (number_literal "-0x171596")) () ")")))) () ")")) (compound_statement "{\n                lVar13 = *(longlong *)(piVar5 + 9);\n              }" ({ "{") (expression_statement "lVar13 = *(longlong *)(piVar5 + 9);" (assignment_expression "lVar13 = *(longlong *)(piVar5 + 9)" (identifier "lVar13") (= "=") (pointer_expression "*(longlong *)(piVar5 + 9)" (* "*") (cast_expression "(longlong *)(piVar5 + 9)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 9)" (( "(") (binary_expression "piVar5 + 9" (identifier "piVar5") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" (else "else") (compound_statement "{\n                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);\n                piVar5 = (int *)*piVar8;\n              }" ({ "{") (expression_statement "lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);" (assignment_expression "lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5)" (identifier "lVar13") (= "=") (call_expression "(**(code **)(*piVar5 + 0xc))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0xc)" (* "*") (cast_expression "(code **)(*piVar5 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0xc)" (( "(") (binary_expression "*piVar5 + 0xc" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")")))) (; ";")) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (} "}")))) (expression_statement "local_38 = (int)((ulonglong)lVar13 >> 0x20);" (assignment_expression "local_38 = (int)((ulonglong)lVar13 >> 0x20)" (identifier "local_38") (= "=") (cast_expression "(int)((ulonglong)lVar13 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar13 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar13")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_3c = (int)lVar13;" (assignment_expression "local_3c = (int)lVar13" (identifier "local_3c") (= "=") (cast_expression "(int)lVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar13"))) (; ";")) (if_statement "if (lVar13 != 0) {\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }" (if "if") (parenthesized_expression "(lVar13 != 0)" (( "(") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);\n                uVar9 = (uint)lVar13 & -local_3c;\n                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));\n              }" ({ "{") (expression_statement "lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);" (assignment_expression "lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" (identifier "lVar13") (= "=") (binary_expression "lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" (identifier "lVar13") (+ "+") (call_expression "CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" (identifier "CONCAT44") (argument_list "((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1)" (( "(") (binary_expression "(uVar10 - 1) + (uint)(uVar9 != 0)" (parenthesized_expression "(uVar10 - 1)" (( "(") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")))) (, ",") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar9 = (uint)lVar13 & -local_3c;" (assignment_expression "uVar9 = (uint)lVar13 & -local_3c" (identifier "uVar9") (= "=") (binary_expression "(uint)lVar13 & -local_3c" (cast_expression "(uint)lVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar13")) (& "&") (unary_expression "-local_3c" (- "-") (identifier "local_3c")))) (; ";")) (expression_statement "uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));" (assignment_expression "uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0))" (identifier "uVar10") (= "=") (binary_expression "(uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0))" (call_expression "(uint)((ulonglong)lVar13 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar13 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar13")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-(local_38 + (uint)(local_3c != 0))" (- "-") (parenthesized_expression "(local_38 + (uint)(local_3c != 0))" (( "(") (binary_expression "local_38 + (uint)(local_3c != 0)" (identifier "local_38") (+ "+") (call_expression "(uint)(local_3c != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_3c != 0)" (( "(") (binary_expression "local_3c != 0" (identifier "local_3c") (!= "!=") (number_literal "0")) () ")")))) () ")"))))) (; ";")) (} "}"))) (expression_statement "lVar13 = CONCAT44(uVar10,uVar9);" (assignment_expression "lVar13 = CONCAT44(uVar10,uVar9)" (identifier "lVar13") (= "=") (call_expression "CONCAT44(uVar10,uVar9)" (identifier "CONCAT44") (argument_list "(uVar10,uVar9)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "bVar1 = *(byte *)(piVar5 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar5 + 7)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) {\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);\n              }" ({ "{") (labeled_statement "LAB_00273315:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);" (statement_identifier "LAB_00273315") (: ":") (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386)" (identifier "FUN_002446e0") (argument_list "(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386)" (( "(") (binary_expression "unaff_EBP + 0x1da597" (identifier "unaff_EBP") (+ "+") (number_literal "0x1da597")) (, ",") (number_literal "0x14b") (, ",") (binary_expression "unaff_EBP + 0x218386" (identifier "unaff_EBP") (+ "+") (number_literal "0x218386")) () ")"))) (; ";"))) (} "}"))) (expression_statement "piVar5[5] = uVar9;" (assignment_expression "piVar5[5] = uVar9" (subscript_expression "piVar5[5]" (identifier "piVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "piVar5[6] = uVar10;" (assignment_expression "piVar5[6] = uVar10" (subscript_expression "piVar5[6]" (identifier "piVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(byte *)(piVar5 + 7) = bVar1 | 4;" (assignment_expression "*(byte *)(piVar5 + 7) = bVar1 | 4" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar1 | 4" (identifier "bVar1") (| "|") (number_literal "4"))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }" (if "if") (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }\n                goto LAB_00272f02;\n              }" ({ "{") (expression_statement "(**(code **)(*piVar5 + 0x38))(piVar5);" (call_expression "(**(code **)(*piVar5 + 0x38))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x38))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x38)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x38)" (* "*") (cast_expression "(code **)(*piVar5 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x38)" (( "(") (binary_expression "*piVar5 + 0x38" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }" (if "if") (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" (( "(") (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);\n                }" ({ "{") (labeled_statement "LAB_00273334:\n                    \n                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);" (statement_identifier "LAB_00273334") (: ":") (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e)" (identifier "FUN_002446e0") (argument_list "(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e)" (( "(") (binary_expression "unaff_EBP + 0x1da597" (identifier "unaff_EBP") (+ "+") (number_literal "0x1da597")) (, ",") (number_literal "0x163") (, ",") (binary_expression "unaff_EBP + 0x21845e" (identifier "unaff_EBP") (+ "+") (number_literal "0x21845e")) () ")"))) (; ";"))) (} "}"))) (goto_statement "goto LAB_00272f02;" (goto "goto") (statement_identifier "LAB_00272f02") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" (else "else") (compound_statement "{\n              piVar5 = (int *)*piVar8;\n              iVar4 = *piVar5;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }\n              uVar9 = piVar5[3];\n              iVar12 = piVar5[4];\n              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }\n              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);\n              if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }\n              piVar5 = (int *)*piVar8;\n              bVar1 = *(byte *)(piVar5 + 7);\n              if ((bVar1 & 4) != 0) goto LAB_00273315;\n              *(longlong *)(piVar5 + 5) = lVar13;\n              *(byte *)(piVar5 + 7) = bVar1 | 4;\n              if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }\n              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);\n              iVar4 = iVar12 - piVar5[4];\n              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }\n              puVar2 = (undefined4 *)*piVar7;\n              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;\n              uVar6 = *puVar2;\n              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }\n              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;\n              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);\nLAB_00272f02:\n              piVar5 = (int *)*piVar8;\n              if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }\n            }" ({ "{") (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" (identifier "iVar4") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }" (if "if") (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" (( "(") (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                (**(code **)(iVar4 + 0x34))(piVar5);\n                piVar5 = (int *)*piVar8;\n                iVar4 = *piVar5;\n              }" ({ "{") (expression_statement "(**(code **)(iVar4 + 0x34))(piVar5);" (call_expression "(**(code **)(iVar4 + 0x34))(piVar5)" (parenthesized_expression "(**(code **)(iVar4 + 0x34))" (( "(") (pointer_expression "**(code **)(iVar4 + 0x34)" (* "*") (pointer_expression "*(code **)(iVar4 + 0x34)" (* "*") (cast_expression "(code **)(iVar4 + 0x34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (expression_statement "iVar4 = *piVar5;" (assignment_expression "iVar4 = *piVar5" (identifier "iVar4") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (} "}"))) (expression_statement "uVar9 = piVar5[3];" (assignment_expression "uVar9 = piVar5[3]" (identifier "uVar9") (= "=") (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar12 = piVar5[4];" (assignment_expression "iVar12 = piVar5[4]" (identifier "iVar12") (= "=") (subscript_expression "piVar5[4]" (identifier "piVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }\n              else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" (if "if") (parenthesized_expression "(*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596))" (( "(") (binary_expression "*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)" (pointer_expression "*(code **)(iVar4 + 0xc)" (* "*") (cast_expression "(code **)(iVar4 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (cast_expression "(code *)(unaff_EBP + -0x171596)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x171596)" (( "(") (binary_expression "unaff_EBP + -0x171596" (identifier "unaff_EBP") (+ "+") (number_literal "-0x171596")) () ")")))) () ")")) (compound_statement "{\n                uVar14 = *(undefined8 *)(piVar5 + 9);\n              }" ({ "{") (expression_statement "uVar14 = *(undefined8 *)(piVar5 + 9);" (assignment_expression "uVar14 = *(undefined8 *)(piVar5 + 9)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined8 *)(piVar5 + 9)" (* "*") (cast_expression "(undefined8 *)(piVar5 + 9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 9)" (( "(") (binary_expression "piVar5 + 9" (identifier "piVar5") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" (else "else") (compound_statement "{\n                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);\n              }" ({ "{") (expression_statement "uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);" (assignment_expression "uVar14 = (**(code **)(iVar4 + 0xc))(piVar5)" (identifier "uVar14") (= "=") (call_expression "(**(code **)(iVar4 + 0xc))(piVar5)" (parenthesized_expression "(**(code **)(iVar4 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar4 + 0xc)" (* "*") (cast_expression "(code **)(iVar4 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")")))) (; ";")) (} "}")))) (expression_statement "lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);" (assignment_expression "lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" (identifier "lVar13") (= "=") (call_expression "FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" (identifier "FUN_00270e00") (argument_list "(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) (, ",") (identifier "uVar9") (, ",") (identifier "iVar12") (, ",") (identifier "uVar14") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar13 == -1) {\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }" (if "if") (parenthesized_expression "(lVar13 == -1)" (( "(") (binary_expression "lVar13 == -1" (identifier "lVar13") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }\n                piVar7 = (int *)*piVar8;\n                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }\n                if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x2178da;\nLAB_0027321b:\n                uVar6 = gettext(iVar4);\n                    \n                FUN_0023b7e0(uVar6,iVar12);\n              }" ({ "{") (if_statement "if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {\n                  FUN_002712d0(param_1 + 0x248);\n                }" (if "if") (parenthesized_expression "((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0))" (( "(") (binary_expression "(*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)" (parenthesized_expression "(*(int *)(*piVar7 + 8) != 0)" (( "(") (binary_expression "*(int *)(*piVar7 + 8) != 0" (pointer_expression "*(int *)(*piVar7 + 8)" (* "*") (cast_expression "(int *)(*piVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar7 + 8)" (( "(") (binary_expression "*piVar7 + 8" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(*piVar7 + 0x14) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*piVar7 + 0x14) & 0x10)" (( "(") (binary_expression "*(byte *)(*piVar7 + 0x14) & 0x10" (pointer_expression "*(byte *)(*piVar7 + 0x14)" (* "*") (cast_expression "(byte *)(*piVar7 + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar7 + 0x14)" (( "(") (binary_expression "*piVar7 + 0x14" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  FUN_002712d0(param_1 + 0x248);\n                }" ({ "{") (expression_statement "FUN_002712d0(param_1 + 0x248);" (call_expression "FUN_002712d0(param_1 + 0x248)" (identifier "FUN_002712d0") (argument_list "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)*piVar8;" (assignment_expression "piVar7 = (int *)*piVar8" (identifier "piVar7") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }" (if "if") (parenthesized_expression "(*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" (( "(") (binary_expression "*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar7 + 0x24)" (* "*") (cast_expression "(code **)(*piVar7 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar7 + 0x24)" (( "(") (binary_expression "*piVar7 + 0x24" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (cast_expression "(code *)(unaff_EBP + -0x12ed36)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x12ed36)" (( "(") (binary_expression "unaff_EBP + -0x12ed36" (identifier "unaff_EBP") (+ "+") (number_literal "-0x12ed36")) () ")")))) () ")")) (compound_statement "{\n                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);\n                }" ({ "{") (expression_statement "piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);" (assignment_expression "piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7)" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(*piVar7 + 0x24))(piVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*piVar7 + 0x24))(piVar7)" (parenthesized_expression "(**(code **)(*piVar7 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar7 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar7 + 0x24)" (* "*") (cast_expression "(code **)(*piVar7 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar7 + 0x24)" (( "(") (binary_expression "*piVar7 + 0x24" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar7)" (( "(") (identifier "piVar7") () ")"))))) (; ";")) (} "}"))) (if_statement "if (piVar7 == (int *)0x0) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }" (if "if") (parenthesized_expression "(piVar7 == (int *)0x0)" (( "(") (binary_expression "piVar7 == (int *)0x0" (identifier "piVar7") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);\n                }" ({ "{") (expression_statement "FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);" (call_expression "FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e)" (identifier "FUN_002446e0") (argument_list "(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e)" (( "(") (binary_expression "unaff_EBP + 0x21718b" (identifier "unaff_EBP") (+ "+") (number_literal "0x21718b")) (, ",") (number_literal "0x1081") (, ",") (binary_expression "unaff_EBP + 0x21835e" (identifier "unaff_EBP") (+ "+") (number_literal "0x21835e")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar8 = (int *)*piVar8;" (assignment_expression "piVar8 = (int *)*piVar8" (identifier "piVar8") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" (if "if") (parenthesized_expression "(*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" (( "(") (binary_expression "*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar8 + 0x24)" (* "*") (cast_expression "(code **)(*piVar8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x24)" (( "(") (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (cast_expression "(code *)(unaff_EBP + -0x12ed36)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x12ed36)" (( "(") (binary_expression "unaff_EBP + -0x12ed36" (identifier "unaff_EBP") (+ "+") (number_literal "-0x12ed36")) () ")")))) () ")")) (compound_statement "{\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" ({ "{") (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8)" (identifier "piVar8") (= "=") (cast_expression "(int *)(**(code **)(*piVar8 + 0x24))(piVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*piVar8 + 0x24))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar8 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar8 + 0x24)" (* "*") (cast_expression "(code **)(*piVar8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x24)" (( "(") (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar12 = piVar8[8];" (assignment_expression "iVar12 = piVar8[8]" (identifier "iVar12") (= "=") (subscript_expression "piVar8[8]" (identifier "piVar8") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "iVar4 = unaff_EBP + 0x2178da;" (assignment_expression "iVar4 = unaff_EBP + 0x2178da" (identifier "iVar4") (= "=") (binary_expression "unaff_EBP + 0x2178da" (identifier "unaff_EBP") (+ "+") (number_literal "0x2178da"))) (; ";")) (labeled_statement "LAB_0027321b:\n                uVar6 = gettext(iVar4);" (statement_identifier "LAB_0027321b") (: ":") (expression_statement "uVar6 = gettext(iVar4);" (assignment_expression "uVar6 = gettext(iVar4)" (identifier "uVar6") (= "=") (call_expression "gettext(iVar4)" (identifier "gettext") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";"))) (expression_statement "FUN_0023b7e0(uVar6,iVar12);" (call_expression "FUN_0023b7e0(uVar6,iVar12)" (identifier "FUN_0023b7e0") (argument_list "(uVar6,iVar12)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar12") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (expression_statement "bVar1 = *(byte *)(piVar5 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar5 + 7)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) goto LAB_00273315;" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00273315;" (goto "goto") (statement_identifier "LAB_00273315") (; ";"))) (expression_statement "*(longlong *)(piVar5 + 5) = lVar13;" (assignment_expression "*(longlong *)(piVar5 + 5) = lVar13" (pointer_expression "*(longlong *)(piVar5 + 5)" (* "*") (cast_expression "(longlong *)(piVar5 + 5)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 5)" (( "(") (binary_expression "piVar5 + 5" (identifier "piVar5") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "lVar13")) (; ";")) (expression_statement "*(byte *)(piVar5 + 7) = bVar1 | 4;" (assignment_expression "*(byte *)(piVar5 + 7) = bVar1 | 4" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar1 | 4" (identifier "bVar1") (| "|") (number_literal "4"))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }" (if "if") (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                (**(code **)(*piVar5 + 0x38))(piVar5);\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;\n                piVar5 = (int *)*piVar8;\n                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;\n              }" ({ "{") (expression_statement "(**(code **)(*piVar5 + 0x38))(piVar5);" (call_expression "(**(code **)(*piVar5 + 0x38))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x38))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x38)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x38)" (* "*") (cast_expression "(code **)(*piVar5 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x38)" (( "(") (binary_expression "*piVar5 + 0x38" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;" (if "if") (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" (( "(") (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00273334;" (goto "goto") (statement_identifier "LAB_00273334") (; ";"))) (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;" (if "if") (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" (( "(") (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002732f6;" (goto "goto") (statement_identifier "LAB_002732f6") (; ";"))) (} "}"))) (expression_statement "uVar9 = (uint)(uVar9 < (uint)piVar5[3]);" (assignment_expression "uVar9 = (uint)(uVar9 < (uint)piVar5[3])" (identifier "uVar9") (= "=") (call_expression "(uint)(uVar9 < (uint)piVar5[3])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 < (uint)piVar5[3])" (( "(") (binary_expression "uVar9 < (uint)piVar5[3]" (identifier "uVar9") (< "<") (cast_expression "(uint)piVar5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]")))) () ")")))) (; ";")) (expression_statement "iVar4 = iVar12 - piVar5[4];" (assignment_expression "iVar4 = iVar12 - piVar5[4]" (identifier "iVar4") (= "=") (binary_expression "iVar12 - piVar5[4]" (identifier "iVar12") (- "-") (subscript_expression "piVar5[4]" (identifier "piVar5") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)\n              {\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }" (if "if") (parenthesized_expression "((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)" (( "(") (binary_expression "(SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0" (parenthesized_expression "(SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9))" (( "(") (binary_expression "SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)" (call_expression "SBORROW4(iVar12,piVar5[4])" (identifier "SBORROW4") (argument_list "(iVar12,piVar5[4])" (( "(") (identifier "iVar12") (, ",") (subscript_expression "piVar5[4]" (identifier "piVar5") ([ "[") (number_literal "4") (] "]")) () ")"))) (!= "!=") (call_expression "SBORROW4(iVar4,uVar9)" (identifier "SBORROW4") (argument_list "(iVar4,uVar9)" (( "(") (identifier "iVar4") (, ",") (identifier "uVar9") () ")")))) () ")")) (!= "!=") (binary_expression "(int)(iVar4 - uVar9) < 0" (cast_expression "(int)(iVar4 - uVar9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar4 - uVar9)" (( "(") (binary_expression "iVar4 - uVar9" (identifier "iVar4") (- "-") (identifier "uVar9")) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }\n                piVar8 = (int *)*piVar8;\n                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }\n                iVar12 = piVar8[8];\n                iVar4 = unaff_EBP + 0x21791e;\n                goto LAB_0027321b;\n              }" ({ "{") (if_statement "if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }" (if "if") (parenthesized_expression "((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0))" (( "(") (binary_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&\n                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)" (parenthesized_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" (( "(") (binary_expression "*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" (* "*") (cast_expression "(code **)(*piVar5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x24)" (( "(") (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (cast_expression "(code *)(unaff_EBP + -0x12ed36)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x12ed36)" (( "(") (binary_expression "unaff_EBP + -0x12ed36" (identifier "unaff_EBP") (+ "+") (number_literal "-0x12ed36")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)" (( "(") (comma_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x24)" (* "*") (cast_expression "(code **)(*piVar5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x24)" (( "(") (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);\n                }" ({ "{") (expression_statement "FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);" (call_expression "FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e)" (identifier "FUN_002446e0") (argument_list "(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e)" (( "(") (binary_expression "unaff_EBP + 0x21718b" (identifier "unaff_EBP") (+ "+") (number_literal "0x21718b")) (, ",") (number_literal "0x108a") (, ",") (binary_expression "unaff_EBP + 0x21835e" (identifier "unaff_EBP") (+ "+") (number_literal "0x21835e")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar8 = (int *)*piVar8;" (assignment_expression "piVar8 = (int *)*piVar8" (identifier "piVar8") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" (if "if") (parenthesized_expression "(*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" (( "(") (binary_expression "*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar8 + 0x24)" (* "*") (cast_expression "(code **)(*piVar8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x24)" (( "(") (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (cast_expression "(code *)(unaff_EBP + -0x12ed36)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x12ed36)" (( "(") (binary_expression "unaff_EBP + -0x12ed36" (identifier "unaff_EBP") (+ "+") (number_literal "-0x12ed36")) () ")")))) () ")")) (compound_statement "{\n                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);\n                }" ({ "{") (expression_statement "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);" (assignment_expression "piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8)" (identifier "piVar8") (= "=") (cast_expression "(int *)(**(code **)(*piVar8 + 0x24))(piVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*piVar8 + 0x24))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar8 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar8 + 0x24)" (* "*") (cast_expression "(code **)(*piVar8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 0x24)" (( "(") (binary_expression "*piVar8 + 0x24" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar12 = piVar8[8];" (assignment_expression "iVar12 = piVar8[8]" (identifier "iVar12") (= "=") (subscript_expression "piVar8[8]" (identifier "piVar8") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "iVar4 = unaff_EBP + 0x21791e;" (assignment_expression "iVar4 = unaff_EBP + 0x21791e" (identifier "iVar4") (= "=") (binary_expression "unaff_EBP + 0x21791e" (identifier "unaff_EBP") (+ "+") (number_literal "0x21791e"))) (; ";")) (goto_statement "goto LAB_0027321b;" (goto "goto") (statement_identifier "LAB_0027321b") (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)*piVar7;" (assignment_expression "puVar2 = (undefined4 *)*piVar7" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)*piVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")))) (; ";")) (if_statement "if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;" (if "if") (parenthesized_expression "((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0))" (( "(") (binary_expression "(puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)" (parenthesized_expression "(puVar2[2] == 0)" (( "(") (binary_expression "puVar2[2] == 0" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(puVar2 + 5) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(puVar2 + 5) & 0x10) == 0" (parenthesized_expression "(*(byte *)(puVar2 + 5) & 0x10)" (( "(") (binary_expression "*(byte *)(puVar2 + 5) & 0x10" (pointer_expression "*(byte *)(puVar2 + 5)" (* "*") (cast_expression "(byte *)(puVar2 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 5)" (( "(") (binary_expression "puVar2 + 5" (identifier "puVar2") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00272f0f;" (goto "goto") (statement_identifier "LAB_00272f0f") (; ";"))) (expression_statement "uVar6 = *puVar2;" (assignment_expression "uVar6 = *puVar2" (identifier "uVar6") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (if_statement "if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }\n              else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" (if "if") (parenthesized_expression "(*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36))" (( "(") (binary_expression "*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" (* "*") (cast_expression "(code **)(*piVar5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x24)" (( "(") (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x24")) () ")")))) (== "==") (cast_expression "(code *)(unaff_EBP + -0x12ed36)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x12ed36)" (( "(") (binary_expression "unaff_EBP + -0x12ed36" (identifier "unaff_EBP") (+ "+") (number_literal "-0x12ed36")) () ")")))) () ")")) (compound_statement "{\nLAB_002730dc:\n                piVar11 = piVar5;\n                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }\n                iVar4 = piVar5[8];\n              }" ({ "{") (labeled_statement "LAB_002730dc:\n                piVar11 = piVar5;" (statement_identifier "LAB_002730dc") (: ":") (expression_statement "piVar11 = piVar5;" (assignment_expression "piVar11 = piVar5" (identifier "piVar11") (= "=") (identifier "piVar5")) (; ";"))) (if_statement "if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }" (if "if") (parenthesized_expression "(*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36))" (( "(") (binary_expression "*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)" (pointer_expression "*(code **)(*piVar5 + 0x24)" (* "*") (cast_expression "(code **)(*piVar5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x24)" (( "(") (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (cast_expression "(code *)(unaff_EBP + -0x12ed36)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x12ed36)" (( "(") (binary_expression "unaff_EBP + -0x12ed36" (identifier "unaff_EBP") (+ "+") (number_literal "-0x12ed36")) () ")")))) () ")")) (compound_statement "{\n                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);\n                  piVar11 = (int *)*piVar8;\n                }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);" (assignment_expression "piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5)" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(*piVar5 + 0x24))(piVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x24)" (* "*") (cast_expression "(code **)(*piVar5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x24)" (( "(") (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)*piVar8;" (assignment_expression "piVar11 = (int *)*piVar8" (identifier "piVar11") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (} "}"))) (expression_statement "iVar4 = piVar5[8];" (assignment_expression "iVar4 = piVar5[8]" (identifier "iVar4") (= "=") (subscript_expression "piVar5[8]" (identifier "piVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" (else "else") (compound_statement "{\n                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);\n                piVar11 = (int *)*piVar8;\n                piVar5 = piVar11;\n                if (iVar4 != 0) goto LAB_002730dc;\n                iVar4 = unaff_EBP + 0x217273;\n              }" ({ "{") (expression_statement "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);" (assignment_expression "iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*piVar5 + 0x24))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x24)" (* "*") (cast_expression "(code **)(*piVar5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x24)" (( "(") (binary_expression "*piVar5 + 0x24" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")")))) (; ";")) (expression_statement "piVar11 = (int *)*piVar8;" (assignment_expression "piVar11 = (int *)*piVar8" (identifier "piVar11") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (expression_statement "piVar5 = piVar11;" (assignment_expression "piVar5 = piVar11" (identifier "piVar5") (= "=") (identifier "piVar11")) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_002730dc;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002730dc;" (goto "goto") (statement_identifier "LAB_002730dc") (; ";"))) (expression_statement "iVar4 = unaff_EBP + 0x217273;" (assignment_expression "iVar4 = unaff_EBP + 0x217273" (identifier "iVar4") (= "=") (binary_expression "unaff_EBP + 0x217273" (identifier "unaff_EBP") (+ "+") (number_literal "0x217273"))) (; ";")) (} "}")))) (if_statement "if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;" (if "if") (parenthesized_expression "((*(byte *)(piVar11 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(piVar11 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar11 + 7) & 2)" (( "(") (binary_expression "*(byte *)(piVar11 + 7) & 2" (pointer_expression "*(byte *)(piVar11 + 7)" (* "*") (cast_expression "(byte *)(piVar11 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11 + 7)" (( "(") (binary_expression "piVar11 + 7" (identifier "piVar11") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002732f6;" (goto "goto") (statement_identifier "LAB_002732f6") (; ";"))) (expression_statement "FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);" (call_expression "FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4)" (identifier "FUN_0023b750") (argument_list "(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4)" (( "(") (identifier "uVar6") (, ",") (binary_expression "unaff_EBP + 0x21795a" (identifier "unaff_EBP") (+ "+") (number_literal "0x21795a")) (, ",") (cast_expression "(int)lVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar13")) (, ",") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "iVar4") () ")"))) (; ";")) (labeled_statement "LAB_00272f02:\n              piVar5 = (int *)*piVar8;" (statement_identifier "LAB_00272f02") (: ":") (expression_statement "piVar5 = (int *)*piVar8;" (assignment_expression "piVar5 = (int *)*piVar8" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";"))) (if_statement "if ((*(byte *)(piVar5 + 7) & 2) == 0) {\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }" (if "if") (parenthesized_expression "((*(byte *)(piVar5 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(piVar5 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 2)" (( "(") (binary_expression "*(byte *)(piVar5 + 7) & 2" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);\n              }" ({ "{") (labeled_statement "LAB_002732f6:\n                    \n                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);" (statement_identifier "LAB_002732f6") (: ":") (expression_statement "FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);" (call_expression "FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2)" (identifier "FUN_002446e0") (argument_list "(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2)" (( "(") (binary_expression "unaff_EBP + 0x1da597" (identifier "unaff_EBP") (+ "+") (number_literal "0x1da597")) (, ",") (number_literal "0xcf") (, ",") (binary_expression "unaff_EBP + 0x2186b2" (identifier "unaff_EBP") (+ "+") (number_literal "0x2186b2")) () ")"))) (; ";"))) (} "}"))) (} "}")))) (labeled_statement "LAB_00272f0f:\n            uVar9 = (uint)lVar13 + piVar5[3];" (statement_identifier "LAB_00272f0f") (: ":") (expression_statement "uVar9 = (uint)lVar13 + piVar5[3];" (assignment_expression "uVar9 = (uint)lVar13 + piVar5[3]" (identifier "uVar9") (= "=") (binary_expression "(uint)lVar13 + piVar5[3]" (cast_expression "(uint)lVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar13")) (+ "+") (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (expression_statement "uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3]);" (assignment_expression "uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3])" (identifier "uVar10") (= "=") (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +\n                     (uint)CARRY4((uint)lVar13,piVar5[3])" (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + piVar5[4]" (cast_expression "(int)((ulonglong)lVar13 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar13 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar13 >> 0x20" (cast_expression "(ulonglong)lVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar13")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (subscript_expression "piVar5[4]" (identifier "piVar5") ([ "[") (number_literal "4") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4((uint)lVar13,piVar5[3])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)lVar13,piVar5[3])" (identifier "CARRY4") (argument_list "((uint)lVar13,piVar5[3])" (( "(") (cast_expression "(uint)lVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar13")) (, ",") (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]")) () ")")))))) (; ";")) (if_statement "if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }" (if "if") (parenthesized_expression "((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0)" (( "(") (binary_expression "(SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))\n                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0" (parenthesized_expression "(SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))" (( "(") (binary_expression "SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9))" (call_expression "SBORROW4(local_40,uVar10)" (identifier "SBORROW4") (argument_list "(local_40,uVar10)" (( "(") (identifier "local_40") (, ",") (identifier "uVar10") () ")"))) (!= "!=") (call_expression "SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9))" (identifier "SBORROW4") (argument_list "(local_40 - uVar10,(uint)(local_44 < uVar9))" (( "(") (binary_expression "local_40 - uVar10" (identifier "local_40") (- "-") (identifier "uVar10")) (, ",") (call_expression "(uint)(local_44 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_44 < uVar9)" (( "(") (binary_expression "local_44 < uVar9" (identifier "local_44") (< "<") (identifier "uVar9")) () ")"))) () ")")))) () ")")) (!= "!=") (binary_expression "(int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0" (cast_expression "(int)((local_40 - uVar10) - (uint)(local_44 < uVar9))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((local_40 - uVar10) - (uint)(local_44 < uVar9))" (( "(") (binary_expression "(local_40 - uVar10) - (uint)(local_44 < uVar9)" (parenthesized_expression "(local_40 - uVar10)" (( "(") (binary_expression "local_40 - uVar10" (identifier "local_40") (- "-") (identifier "uVar10")) () ")")) (- "-") (call_expression "(uint)(local_44 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_44 < uVar9)" (( "(") (binary_expression "local_44 < uVar9" (identifier "local_44") (< "<") (identifier "uVar9")) () ")")))) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n              local_40 = uVar10;\n              local_44 = uVar9;\n            }" ({ "{") (expression_statement "local_40 = uVar10;" (assignment_expression "local_40 = uVar10" (identifier "local_40") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "local_44 = uVar9;" (assignment_expression "local_44 = uVar9" (identifier "local_44") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (if_statement "if (param_4 != 2) {\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }" (if "if") (parenthesized_expression "(param_4 != 2)" (( "(") (binary_expression "param_4 != 2" (identifier "param_4") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n              FUN_00349de0(param_1 + 8,piVar5[8],0,0);\n            }" ({ "{") (expression_statement "FUN_00349de0(param_1 + 8,piVar5[8],0,0);" (call_expression "FUN_00349de0(param_1 + 8,piVar5[8],0,0)" (identifier "FUN_00349de0") (argument_list "(param_1 + 8,piVar5[8],0,0)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) (, ",") (subscript_expression "piVar5[8]" (identifier "piVar5") ([ "[") (number_literal "8") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" (else "else") (if_statement "if ((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))\n        goto LAB_00272e42;" (if "if") (parenthesized_expression "((param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))" (( "(") (binary_expression "(param_4 != 2) ||\n                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)))" (parenthesized_expression "(param_4 != 2)" (( "(") (binary_expression "param_4 != 2" (identifier "param_4") (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)))" (( "(") (parenthesized_expression "((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))" (( "(") (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3)" (binary_expression "(*(byte *)(iVar4 + 0x90) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar4 + 0x90) & 0x10)" (( "(") (binary_expression "*(byte *)(iVar4 + 0x90) & 0x10" (pointer_expression "*(byte *)(iVar4 + 0x90)" (* "*") (cast_expression "(byte *)(iVar4 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x90)" (( "(") (binary_expression "iVar4 + 0x90" (identifier "iVar4") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x50) == 3)" (( "(") (binary_expression "*(int *)(iVar4 + 0x50) == 3" (pointer_expression "*(int *)(iVar4 + 0x50)" (* "*") (cast_expression "(int *)(iVar4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x50)" (( "(") (binary_expression "iVar4 + 0x50" (identifier "iVar4") (+ "+") (number_literal "0x50")) () ")")))) (== "==") (number_literal "3")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00272e42;" (goto "goto") (statement_identifier "LAB_00272e42") (; ";"))))))) (} "}"))) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x140) != piVar8)" (( "(") (binary_expression "*(int **)(param_1 + 0x140) != piVar8" (pointer_expression "*(int **)(param_1 + 0x140)" (* "*") (cast_expression "(int **)(param_1 + 0x140)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (!= "!=") (identifier "piVar8")) () ")")) (; ";")) (} "}")))) (return_statement "return CONCAT44(local_40,local_44);" (return "return") (call_expression "CONCAT44(local_40,local_44)" (identifier "CONCAT44") (argument_list "(local_40,local_44)" (( "(") (identifier "local_40") (, ",") (identifier "local_44") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: off_t set_section_offsets(Layout * this, off_t off, Section_offset_pass
   pass) */

type_1 __thiscall var_1::type_2::function_1(type_2 *this,type_1 off,type_3 var_7)

{
  type_1 *var_28;
  int *piVar2;
  type_4 var_6;
  type_5 *var_16;
  type_6 *this_00;
  type_1 len;
  type_7 lVar5;
  type_1 oVar6;
  bool bVar7;
  int var_22;
  type_8 *var_5;
  char *pcVar10;
  type_5 **pp_Var11;
  type_9 uVar12;
  int extraout_EDX;
  type_9 extraout_EDX_00;
  type_8 *pOVar13;
  type_10 var_4;
  type_11 var_23;
  char *pcVar16;
  int var_20;
  type_7 var_14;
  type_11 var_30;
  int var_29;
  int var_26;
  int var_25;
  
  var_4 = (this->unattached_section_list_).
             super__Vector_base<var_1::type_8*,var_2::allocator<var_1::type_8*>var_3>.
             _M_impl._M_start;
  lVar5 = off;
  if (var_4 !=
      (this->unattached_section_list_).
      super__Vector_base<var_1::type_8*,var_2::allocator<var_1::type_8*>var_3>._M_impl.
      _M_finish) {
    var_14 = off;
    do {
      var_29 = (int)((type_12)lVar5 >> 0x20);
      var_30 = (type_11)lVar5;
      var_5 = *var_4;
      if ((var_5 != this->symtab_section_) &&
         ((var_6 = (var_5->super_Output_data).field_0x1c, (var_6 & 4) == 0 || ((var_6 & 2) == 0))))
      {
        if (var_7 == var_8) {
          if ((var_5->field_0x90 & 0x20) != 0) {
            Output_section::var_9(var_5);
            this->any_postprocessing_sections_ = true;
            var_5 = *var_4;
          }
          if ((var_5->field_0x90 & 0x10) == 0) goto LAB_00272e42;
        }
        else if (var_7 == var_10) {
          if (((var_5->field_0x90 & 0x10) != 0) && (var_5->type_ != 3)) {
LAB_00272e42:
            bVar7 = Parameters::var_11(parameters);
            if (bVar7) {
              var_5 = *var_4;
              pp_Var11 = (var_5->super_Output_data)._vptr_Output_data;
              if (((var_5->super_Output_data).field_0x1c & 2) == 0) {
                (*pp_Var11[0xd])(var_5);
                var_5 = *var_4;
                pp_Var11 = (var_5->super_Output_data)._vptr_Output_data;
              }
              var_28 = &(var_5->super_Output_data).data_size_;
              oVar6 = *var_28;
              var_20 = *(int *)((int)&(var_5->super_Output_data).data_size_ + 4);
              len = *var_28;
              if (pp_Var11[3] == type_8::do_addralign) {
                uVar12 = *(type_9 *)((int)&var_5->addralign_ + 4);
                var_22 = (int)var_5->addralign_;
              }
              else {
                var_22 = (*pp_Var11[3])(var_5);
                uVar12 = extraout_EDX_00;
              }
              var_14 = Free_list::var_12(&this->free_list_,len,var_13(uVar12,var_22),off);
              if (var_14 == -1) {
                if ((parameters->options_ != (type_13 *)0x0) &&
                   ((parameters->debug_ & 0x10) != 0)) {
                  Free_list::var_15(&this->free_list_);
                }
                var_5 = *var_4;
                var_16 = (var_5->super_Output_data)._vptr_Output_data[9];
                if (var_16 != type_8::do_output_section) {
                  var_5 = (type_8 *)(*var_16)(var_5);
                }
                if (var_5 == (type_8 *)0x0) {
                    /* WARNING: Subroutine does not return */
                  var_17("../../gold/layout.cc",0x1081,"set_section_offsets");
                }
                var_5 = *var_4;
                var_16 = (var_5->super_Output_data)._vptr_Output_data[9];
                if (var_16 != type_8::do_output_section) {
                  var_5 = (type_8 *)(*var_16)(var_5);
                }
                pcVar16 = var_5->name_;
                pcVar10 = "out of patch space for section %s; relink with --incremental-full";
LAB_0027321b:
                pcVar10 = (char *)var_18(pcVar10);
                    /* WARNING: Subroutine does not return */
                var_19(pcVar10,pcVar16);
              }
              var_5 = *var_4;
              var_6 = (var_5->super_Output_data).field_0x1c;
              if ((var_6 & 4) != 0) goto LAB_00273315;
              (var_5->super_Output_data).offset_ = var_14;
              (var_5->super_Output_data).field_0x1c = var_6 | 4;
              if ((var_6 & 2) == 0) {
                (*(var_5->super_Output_data)._vptr_Output_data[0xe])(var_5);
                if (((var_5->super_Output_data).field_0x1c & 2) == 0) goto LAB_00273334;
                var_5 = *var_4;
                if (((var_5->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;
              }
              piVar2 = (int *)((int)&(var_5->super_Output_data).data_size_ + 4);
              var_23 = (type_11)((type_11)oVar6 < (type_11)(var_5->super_Output_data).data_size_);
              var_22 = var_20 - *piVar2;
              if ((var_21(var_20,*piVar2) != var_21(var_22,var_23)) != (int)(var_22 - var_23) < 0)
              {
                var_16 = (var_5->super_Output_data)._vptr_Output_data[9];
                if ((var_16 != type_8::do_output_section) &&
                   (var_20 = (*var_16)(var_5), var_20 == 0)) {
                    /* WARNING: Subroutine does not return */
                  var_17("../../gold/layout.cc",0x108a,"set_section_offsets");
                }
                var_5 = *var_4;
                var_16 = (var_5->super_Output_data)._vptr_Output_data[9];
                if (var_16 != type_8::do_output_section) {
                  var_5 = (type_8 *)(*var_16)(var_5);
                }
                pcVar16 = var_5->name_;
                pcVar10 = "%s: section changed size; relink with --incremental-full";
                goto LAB_0027321b;
              }
              if ((parameters->options_ == (type_13 *)0x0) ||
                 ((parameters->debug_ & 0x10) == 0)) goto LAB_00272f0f;
              this_00 = parameters->errors_;
              var_16 = (var_5->super_Output_data)._vptr_Output_data[9];
              if (var_16 == type_8::do_output_section) {
LAB_002730dc:
                var_16 = (var_5->super_Output_data)._vptr_Output_data[9];
                pOVar13 = var_5;
                if (var_16 != type_8::do_output_section) {
                  var_5 = (type_8 *)(*var_16)(var_5);
                  pOVar13 = *var_4;
                }
                pcVar10 = var_5->name_;
              }
              else {
                var_20 = (*var_16)(var_5);
                pOVar13 = *var_4;
                var_5 = pOVar13;
                if (var_20 != 0) goto LAB_002730dc;
                pcVar10 = "(special)";
              }
              if (((pOVar13->super_Output_data).field_0x1c & 2) == 0) goto LAB_002732f6;
              Errors::var_24(this_00,"set_section_offsets: %08lx %08lx %s",(int)var_14,
                            (int)(pOVar13->super_Output_data).data_size_,pcVar10);
LAB_00272f02:
              var_5 = *var_4;
              if (((var_5->super_Output_data).field_0x1c & 2) == 0) {
LAB_002732f6:
                    /* WARNING: Subroutine does not return */
                var_17("../../gold/output.h",0xcf,"data_size");
              }
            }
            else {
              var_5 = *var_4;
              var_16 = (var_5->super_Output_data)._vptr_Output_data[3];
              if (var_16 == type_8::do_addralign) {
                var_26 = (int)var_5->addralign_;
                var_25 = *(int *)((int)&var_5->addralign_ + 4);
              }
              else {
                var_26 = (*var_16)(var_5);
                var_5 = *var_4;
                var_25 = extraout_EDX;
              }
              if (var_25 != 0 || var_26 != 0) {
                var_14 = var_14 + -1 + var_13(var_25,var_26);
                var_14 = var_13((type_11)((type_12)var_14 >> 0x20) &
                                  -(var_25 + (type_11)(var_26 != 0)),(type_11)var_14 & -var_26);
              }
              var_6 = (var_5->super_Output_data).field_0x1c;
              if ((var_6 & 4) != 0) {
LAB_00273315:
                    /* WARNING: Subroutine does not return */
                var_17("../../gold/output.h",0x14b,"set_file_offset");
              }
              (var_5->super_Output_data).offset_ = var_14;
              (var_5->super_Output_data).field_0x1c = var_6 | 4;
              if ((var_6 & 2) == 0) {
                (*(var_5->super_Output_data)._vptr_Output_data[0xe])(var_5);
                if (((var_5->super_Output_data).field_0x1c & 2) == 0) {
LAB_00273334:
                    /* WARNING: Subroutine does not return */
                  var_17("../../gold/output.h",0x163,"finalize_data_size");
                }
                goto LAB_00272f02;
              }
            }
LAB_00272f0f:
            var_28 = &(var_5->super_Output_data).data_size_;
            var_23 = (type_11)var_14 + (int)*var_28;
            var_20 = (int)((type_12)var_14 >> 0x20) +
                     *(int *)((int)&(var_5->super_Output_data).data_size_ + 4) +
                     (type_11)var_27((type_11)var_14,(type_11)*var_28);
            if ((var_21(var_29,var_20) != var_21(var_29 - var_20,(type_11)(var_30 < var_23)))
                != (int)((var_29 - var_20) - (type_11)(var_30 < var_23)) < 0) {
              lVar5 = var_13(var_20,var_23);
            }
            var_14 = var_13(var_20,var_23);
            if (var_7 != var_31) {
              var_32<var_33>::var_34(&this->namepool_,var_5->name_,false,(type_14 *)0x0);
              var_14 = var_13(var_20,var_23);
            }
          }
        }
        else if ((var_7 != var_31) ||
                (((var_5->field_0x90 & 0x10) != 0 && (var_5->type_ == 3)))) goto LAB_00272e42;
      }
      var_4 = var_4 + 1;
    } while ((this->unattached_section_list_).
             super__Vector_base<var_1::type_8*,var_2::allocator<var_1::type_8*>var_3>.
             _M_impl._M_finish != var_4);
  }
  return lVar5;
}


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

undefined8 MASKED(int param_1,uint param_2,uint param_3,int param_4)

{
  byte bVar1;
  undefined4 *puVar2;
  char cVar3;
  int iVar4;
  int *piVar5;
  undefined4 uVar6;
  int *piVar7;
  int *piVar8;
  uint uVar9;
  uint uVar10;
  int *piVar11;
  int unaff_EBP;
  int iVar12;
  longlong lVar13;
  undefined8 uVar14;
  uint local_44;
  uint local_40;
  int local_3c;
  int local_38;
  
  FUN_00074f0e();
  piVar8 = *(int **)(param_1 + 0x13c);
  if (piVar8 == *(int **)(param_1 + 0x140)) {
    local_44 = param_2;
    local_40 = param_3;
  }
  else {
    piVar7 = (int *)(unaff_EBP + 0x377a02);
    local_44 = param_2;
    local_40 = param_3;
    uVar9 = param_2;
    uVar10 = param_3;
    do {
      iVar4 = *piVar8;
      if ((iVar4 != *(int *)(param_1 + 0x174)) &&
         (((*(byte *)(iVar4 + 0x1c) & 4) == 0 || ((*(byte *)(iVar4 + 0x1c) & 2) == 0)))) {
        if (param_4 == 0) {
          if ((*(byte *)(iVar4 + 0x90) & 0x20) != 0) {
            FUN_002c7390(iVar4);
            *(undefined1 *)(param_1 + 0x1ca) = 1;
            iVar4 = *piVar8;
          }
          if ((*(byte *)(iVar4 + 0x90) & 0x10) == 0) goto LAB_00272e42;
        }
        else if (param_4 == 1) {
          if (((*(byte *)(iVar4 + 0x90) & 0x10) != 0) && (*(int *)(iVar4 + 0x50) != 3)) {
LAB_00272e42:
            cVar3 = FUN_0030aff0(*piVar7);
            if (cVar3 == '\0') {
              piVar5 = (int *)*piVar8;
              if (*(code **)(*piVar5 + 0xc) == (code *)(unaff_EBP + -0x171596)) {
                lVar13 = *(longlong *)(piVar5 + 9);
              }
              else {
                lVar13 = (**(code **)(*piVar5 + 0xc))(piVar5);
                piVar5 = (int *)*piVar8;
              }
              local_38 = (int)((ulonglong)lVar13 >> 0x20);
              local_3c = (int)lVar13;
              if (lVar13 != 0) {
                lVar13 = lVar13 + CONCAT44((uVar10 - 1) + (uint)(uVar9 != 0),uVar9 - 1);
                uVar9 = (uint)lVar13 & -local_3c;
                uVar10 = (uint)((ulonglong)lVar13 >> 0x20) & -(local_38 + (uint)(local_3c != 0));
              }
              lVar13 = CONCAT44(uVar10,uVar9);
              bVar1 = *(byte *)(piVar5 + 7);
              if ((bVar1 & 4) != 0) {
LAB_00273315:
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EBP + 0x1da597,0x14b,unaff_EBP + 0x218386);
              }
              piVar5[5] = uVar9;
              piVar5[6] = uVar10;
              *(byte *)(piVar5 + 7) = bVar1 | 4;
              if ((bVar1 & 2) == 0) {
                (**(code **)(*piVar5 + 0x38))(piVar5);
                if ((*(byte *)(piVar5 + 7) & 2) == 0) {
LAB_00273334:
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EBP + 0x1da597,0x163,unaff_EBP + 0x21845e);
                }
                goto LAB_00272f02;
              }
            }
            else {
              piVar5 = (int *)*piVar8;
              iVar4 = *piVar5;
              if ((*(byte *)(piVar5 + 7) & 2) == 0) {
                (**(code **)(iVar4 + 0x34))(piVar5);
                piVar5 = (int *)*piVar8;
                iVar4 = *piVar5;
              }
              uVar9 = piVar5[3];
              iVar12 = piVar5[4];
              if (*(code **)(iVar4 + 0xc) == (code *)(unaff_EBP + -0x171596)) {
                uVar14 = *(undefined8 *)(piVar5 + 9);
              }
              else {
                uVar14 = (**(code **)(iVar4 + 0xc))(piVar5);
              }
              lVar13 = FUN_00270e00(param_1 + 0x248,uVar9,iVar12,uVar14,param_2,param_3);
              if (lVar13 == -1) {
                if ((*(int *)(*piVar7 + 8) != 0) && ((*(byte *)(*piVar7 + 0x14) & 0x10) != 0)) {
                  FUN_002712d0(param_1 + 0x248);
                }
                piVar7 = (int *)*piVar8;
                if (*(code **)(*piVar7 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar7 = (int *)(**(code **)(*piVar7 + 0x24))(piVar7);
                }
                if (piVar7 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EBP + 0x21718b,0x1081,unaff_EBP + 0x21835e);
                }
                piVar8 = (int *)*piVar8;
                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);
                }
                iVar12 = piVar8[8];
                iVar4 = unaff_EBP + 0x2178da;
LAB_0027321b:
                uVar6 = gettext(iVar4);
                    /* WARNING: Subroutine does not return */
                FUN_0023b7e0(uVar6,iVar12);
              }
              piVar5 = (int *)*piVar8;
              bVar1 = *(byte *)(piVar5 + 7);
              if ((bVar1 & 4) != 0) goto LAB_00273315;
              *(longlong *)(piVar5 + 5) = lVar13;
              *(byte *)(piVar5 + 7) = bVar1 | 4;
              if ((bVar1 & 2) == 0) {
                (**(code **)(*piVar5 + 0x38))(piVar5);
                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_00273334;
                piVar5 = (int *)*piVar8;
                if ((*(byte *)(piVar5 + 7) & 2) == 0) goto LAB_002732f6;
              }
              uVar9 = (uint)(uVar9 < (uint)piVar5[3]);
              iVar4 = iVar12 - piVar5[4];
              if ((SBORROW4(iVar12,piVar5[4]) != SBORROW4(iVar4,uVar9)) != (int)(iVar4 - uVar9) < 0)
              {
                if ((*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) &&
                   (iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5), iVar4 == 0)) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EBP + 0x21718b,0x108a,unaff_EBP + 0x21835e);
                }
                piVar8 = (int *)*piVar8;
                if (*(code **)(*piVar8 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar8 = (int *)(**(code **)(*piVar8 + 0x24))(piVar8);
                }
                iVar12 = piVar8[8];
                iVar4 = unaff_EBP + 0x21791e;
                goto LAB_0027321b;
              }
              puVar2 = (undefined4 *)*piVar7;
              if ((puVar2[2] == 0) || ((*(byte *)(puVar2 + 5) & 0x10) == 0)) goto LAB_00272f0f;
              uVar6 = *puVar2;
              if (*(code **)(*piVar5 + 0x24) == (code *)(unaff_EBP + -0x12ed36)) {
LAB_002730dc:
                piVar11 = piVar5;
                if (*(code **)(*piVar5 + 0x24) != (code *)(unaff_EBP + -0x12ed36)) {
                  piVar5 = (int *)(**(code **)(*piVar5 + 0x24))(piVar5);
                  piVar11 = (int *)*piVar8;
                }
                iVar4 = piVar5[8];
              }
              else {
                iVar4 = (**(code **)(*piVar5 + 0x24))(piVar5);
                piVar11 = (int *)*piVar8;
                piVar5 = piVar11;
                if (iVar4 != 0) goto LAB_002730dc;
                iVar4 = unaff_EBP + 0x217273;
              }
              if ((*(byte *)(piVar11 + 7) & 2) == 0) goto LAB_002732f6;
              FUN_0023b750(uVar6,unaff_EBP + 0x21795a,(int)lVar13,piVar11[3],iVar4);
LAB_00272f02:
              piVar5 = (int *)*piVar8;
              if ((*(byte *)(piVar5 + 7) & 2) == 0) {
LAB_002732f6:
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EBP + 0x1da597,0xcf,unaff_EBP + 0x2186b2);
              }
            }
LAB_00272f0f:
            uVar9 = (uint)lVar13 + piVar5[3];
            uVar10 = (int)((ulonglong)lVar13 >> 0x20) + piVar5[4] +
                     (uint)CARRY4((uint)lVar13,piVar5[3]);
            if ((SBORROW4(local_40,uVar10) != SBORROW4(local_40 - uVar10,(uint)(local_44 < uVar9)))
                != (int)((local_40 - uVar10) - (uint)(local_44 < uVar9)) < 0) {
              local_40 = uVar10;
              local_44 = uVar9;
            }
            if (param_4 != 2) {
              FUN_00349de0(param_1 + 8,piVar5[8],0,0);
            }
          }
        }
        else if ((param_4 != 2) ||
                (((*(byte *)(iVar4 + 0x90) & 0x10) != 0 && (*(int *)(iVar4 + 0x50) == 3))))
        goto LAB_00272e42;
      }
      piVar8 = piVar8 + 1;
    } while (*(int **)(param_1 + 0x140) != piVar8);
  }
  return CONCAT44(local_40,local_44);
}

