
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* DWARF original prototype: void add_output_section_data(Output_section * this, Output_section_data
   * posd) */

void __thiscall
gold::Output_section::add_output_section_data(Output_section *this,Output_section_data *posd)

{
  off_t *poVar1;
  byte bVar2;
  _func_int_varargs *p_Var3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  off_t oVar7;
  int iVar8;
  uint uVar9;
  char *format;
  undefined4 uVar10;
  undefined4 extraout_EDX;
  int extraout_EDX_00;
  off_t oVar11;
  undefined8 local_4c;
  byte local_3d;
  Input_section inp;
  
  inp.shndx_ = 0xffffffff;
  inp.p2align_ = 0;
  inp.section_order_index_ = 0;
  inp.u1_.data_size._0_4_ = 0;
  inp.u1_.data_size._4_4_ = 0;
  inp.u2_.posd = posd;
  add_output_section_data(this,&inp);
  bVar2 = (posd->super_Output_data).field_0x1c;
  if ((bVar2 & 2) == 0) {
    if ((this->field_0x92 & 0x20) != 0) {
      if (((this->super_Output_data).field_0x1c & 1) != 0) {
        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);
        if ((bVar2 & 1) == 0) {
          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;
          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;
          (posd->super_Output_data).field_0x1c = bVar2 | 1;
          if ((bVar2 & 4) == 0) {
            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;
            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;
            (posd->super_Output_data).field_0x1c = bVar2 | 5;
            return;
          }
          goto LAB_000bf557;
        }
        goto LAB_000bf53c;
      }
      goto LAB_000bf521;
    }
  }
  else {
    p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];
    if ((this->field_0x92 & 0x20) == 0) {
      poVar1 = &(this->super_Output_data).data_size_;
      iVar8 = (int)*poVar1;
      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);
      local_4c = *poVar1;
      if (p_Var3 == Output_section_data::do_addralign) {
        iVar5 = *(int *)((int)&posd->addralign_ + 4);
        uVar9 = (uint)posd->addralign_;
        if (iVar5 != 0 || uVar9 != 0) {
          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +
                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),
                              (iVar8 - 1U) + uVar9 & -uVar9);
        }
      }
      else {
        uVar9 = (*p_Var3)(posd);
        if (extraout_EDX_00 != 0 || uVar9 != 0) {
          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &
                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +
                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);
        }
        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;
        if (local_3d == 0) goto LAB_000bf506;
      }
      poVar1 = &(posd->super_Output_data).data_size_;
      oVar11 = *poVar1;
      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);
      if (((this->super_Output_data).field_0x1c & 2) != 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");
      }
      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;
      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =
           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);
      return;
    }
    if (p_Var3 == Output_section_data::do_addralign) {
      iVar8 = (int)posd->addralign_;
      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);
    }
    else {
      iVar8 = (*p_Var3)(posd);
      uVar10 = extraout_EDX;
      if (((posd->super_Output_data).field_0x1c & 2) == 0) {
LAB_000bf506:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
      }
    }
    oVar11 = Free_list::allocate(&this->free_list_,(posd->super_Output_data).data_size_,
                                 CONCAT44(uVar10,iVar8),0);
    if (oVar11 == -1) {
      pcVar6 = this->name_;
      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");
                    /* WARNING: Subroutine does not return */
      gold_fallback(format,pcVar6);
    }
    bVar2 = (this->super_Output_data).field_0x1c;
    if ((bVar2 & 1) == 0) {
LAB_000bf521:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xc5,"address");
    }
    iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);
    uVar9 = (uint)(this->super_Output_data).address_;
    if ((bVar2 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0xe3,"offset");
    }
    local_4c._0_4_ = (uint)oVar11;
    local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);
    poVar1 = &(this->super_Output_data).offset_;
    oVar11 = *poVar1;
    oVar7 = *poVar1;
    iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);
    bVar2 = (posd->super_Output_data).field_0x1c;
    if ((bVar2 & 1) != 0) {
LAB_000bf53c:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0x142,"set_address");
    }
    *(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;
    *(uint *)((int)&(posd->super_Output_data).address_ + 4) =
         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);
    (posd->super_Output_data).field_0x1c = bVar2 | 1;
    if ((bVar2 & 4) != 0) {
LAB_000bf557:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");
    }
    *(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;
    *(uint *)((int)&(posd->super_Output_data).offset_ + 4) =
         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);
    (posd->super_Output_data).field_0x1c = bVar2 | 5;
    if (((bVar2 & 2) == 0) &&
       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),
       ((posd->super_Output_data).field_0x1c & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");
    }
  }
  return;
}



void FUN_000bf250(int *param_1,int *param_2)

{
  byte bVar1;
  code *pcVar2;
  uint uVar3;
  int iVar4;
  longlong lVar5;
  uint uVar6;
  int *piVar7;
  undefined4 extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined4 uVar8;
  int **ppiVar9;
  int unaff_EBP;
  int *piVar10;
  bool bVar11;
  undefined8 uVar12;
  longlong lVar13;
  int *piStack_5c;
  undefined4 *puStack_58;
  undefined *puStack_54;
  undefined8 local_4c;
  byte local_3d;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  int *local_24;
  undefined4 local_20;
  
  FUN_0004fb82();
  piVar10 = (int *)(unaff_EBP + 0x242daa);
  puStack_58 = &local_34;
  local_34 = 0xffffffff;
  local_30 = 0;
  local_20 = 0;
  local_2c = 0;
  local_28 = 0;
  local_24 = param_2;
  piStack_5c = param_1;
  FUN_000bf100();
  bVar1 = *(byte *)(param_2 + 7);
  if ((bVar1 & 2) == 0) {
    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {
      return;
    }
    if ((*(byte *)(param_1 + 7) & 1) != 0) {
      iVar4 = param_1[2];
      if ((bVar1 & 1) == 0) {
        param_2[1] = param_1[1];
        param_2[2] = iVar4;
        *(byte *)(param_2 + 7) = bVar1 | 1;
        if ((bVar1 & 4) == 0) {
          param_2[5] = 0;
          param_2[6] = 0;
          *(byte *)(param_2 + 7) = bVar1 | 5;
          return;
        }
LAB_000bf557:
        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);
        piStack_5c = (int *)(unaff_EBP + 0x1623b6);
        puStack_58 = (undefined4 *)0x14b;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0();
      }
LAB_000bf53c:
      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);
      piStack_5c = (int *)(unaff_EBP + 0x1623b6);
      puStack_58 = (undefined4 *)0x142;
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0();
    }
  }
  else {
    pcVar2 = *(code **)(*param_2 + 0xc);
    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {
      local_4c._0_4_ = param_1[3];
      local_4c._4_4_ = param_1[4];
      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {
        iVar4 = param_2[10];
        uVar3 = param_2[9];
        if (iVar4 != 0 || uVar3 != 0) {
          bVar11 = (uint)local_4c != 0;
          uVar6 = (uint)local_4c - 1;
          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;
          local_4c._4_4_ =
               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &
               -(iVar4 + (uint)(uVar3 != 0));
        }
      }
      else {
        piStack_5c = param_2;
        lVar13 = (*pcVar2)();
        if (lVar13 != 0) {
          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),
                                    (uint)local_4c - 1);
          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;
          local_4c._4_4_ =
               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &
               (uint)((ulonglong)lVar5 >> 0x20);
        }
        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;
        if (local_3d == 0) goto LAB_000bf506;
      }
      uVar3 = param_2[3];
      iVar4 = param_2[4];
      if ((*(byte *)(param_1 + 7) & 2) == 0) {
        param_1[3] = (uint)local_4c + param_2[3];
        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);
        return;
      }
      puStack_54 = &UNK_0016c9aa + unaff_EBP;
      piStack_5c = (int *)(unaff_EBP + 0x1623b6);
      puStack_58 = (undefined4 *)0x231;
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0();
    }
    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {
      uVar12 = *(undefined8 *)(param_2 + 9);
    }
    else {
      piStack_5c = param_2;
      uVar12 = (*pcVar2)();
      if ((*(byte *)(param_2 + 7) & 2) == 0) {
LAB_000bf506:
        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);
        piStack_5c = (int *)(unaff_EBP + 0x1623b6);
        puStack_58 = (undefined4 *)0xcf;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0();
      }
    }
    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);
    ppiVar9 = (int **)&local_4c;
    puStack_54 = (undefined *)0x0;
    puStack_58 = (undefined4 *)0x0;
    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);
    if (local_4c == -1) {
      iVar4 = param_1[8];
      piStack_5c = (int *)(unaff_EBP + 0x16b78a);
      piVar7 = (int *)gettext();
      piVar10 = piStack_5c;
      ppiVar9 = &piStack_5c;
      piStack_5c = piVar7;
      puStack_58 = (undefined4 *)iVar4;
      FUN_0005acd0();
      uVar8 = extraout_EDX_00;
LAB_000bf5c1:
      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;
      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;
      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;
      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;
                    /* WARNING: Subroutine does not return */
      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;
      FUN_0005f0b0();
    }
    if ((*(byte *)(param_1 + 7) & 1) != 0) {
      if ((*(byte *)(param_1 + 7) & 4) == 0) {
        puStack_54 = &UNK_0016c9f6 + unaff_EBP;
        piStack_5c = (int *)(unaff_EBP + 0x1623b6);
        puStack_58 = (undefined4 *)0xe3;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0();
      }
      uVar3 = param_1[5];
      uVar6 = param_1[5];
      iVar4 = param_1[6];
      bVar1 = *(byte *)(param_2 + 7);
      if ((bVar1 & 1) == 0) {
        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);
        *(byte *)(param_2 + 7) = bVar1 | 1;
        if ((bVar1 & 4) != 0) goto LAB_000bf557;
        param_2[5] = (uint)local_4c + uVar6;
        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)
        ;
        *(byte *)(param_2 + 7) = bVar1 | 5;
        if ((bVar1 & 2) == 0) {
          piStack_5c = param_2;
          (**(code **)(*param_2 + 0x38))();
          uVar8 = extraout_EDX;
          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;
        }
        return;
      }
      goto LAB_000bf53c;
    }
  }
  puStack_54 = &UNK_0016ca2e + unaff_EBP;
  piStack_5c = (int *)(unaff_EBP + 0x1623b6);
  puStack_58 = (undefined4 *)0xc5;
                    /* WARNING: Subroutine does not return */
  FUN_0005f0b0();
}


PUSH EBP
CALL 0x0004fb82
ADD EBP,0x242daa
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x44
MOV ESI,dword ptr [ESP + 0x5c]
LEA EAX,[ESP + 0x20]
MOV dword ptr [ESP + 0x20],0xffffffff
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x30],ESI
PUSH EAX
PUSH dword ptr [ESP + 0x5c]
CALL 0x000bf100
MOVZX ECX,byte ptr [ESI + 0x1c]
ADD ESP,0x10
TEST CL,0x2
JZ 0x000bf408
MOV EAX,dword ptr [ESI]
MOV EBX,dword ptr [ESP + 0x50]
MOV EAX,dword ptr [EAX + 0xc]
TEST byte ptr [EBX + 0x92],0x20
JZ 0x000bf3a8
LEA EDX,[EBP + 0xffd66180]
LEA EBX,[EBX + 0xb4]
CMP EAX,EDX
JNZ 0x000bf490
MOV EAX,dword ptr [ESI + 0x24]
MOV EDX,dword ptr [ESI + 0x28]
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH EDX
PUSH EAX
PUSH dword ptr [ESI + 0x10]
PUSH dword ptr [ESI + 0xc]
PUSH EBX
MOV EBX,EBP
CALL 0x0007ac00
MOV ECX,EDX
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x24],EDX
AND ECX,EAX
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x50]
CMP ECX,-0x1
JZ 0x000bf5a6
MOVZX ECX,byte ptr [EAX + 0x1c]
TEST CL,0x1
JZ 0x000bf521
MOV EAX,dword ptr [ESP + 0x50]
AND ECX,0x4
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
JZ 0x000bf572
MOV EDI,dword ptr [ESP + 0x50]
MOV ECX,dword ptr [ESP]
MOV EBX,dword ptr [ESP + 0x4]
ADD ECX,dword ptr [EDI + 0x14]
ADC EBX,dword ptr [EDI + 0x18]
MOVZX EDI,byte ptr [ESI + 0x1c]
ADD EAX,dword ptr [ESP]
ADC EDX,dword ptr [ESP + 0x4]
TEST EDI,0x1
JNZ 0x000bf53c
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,EDI
OR EAX,0x1
MOV dword ptr [ESI + 0x8],EDX
MOV byte ptr [ESI + 0x1c],AL
TEST AL,0x4
JNZ 0x000bf557
MOV EAX,EDI
MOV dword ptr [ESI + 0x14],ECX
OR EAX,0x5
MOV dword ptr [ESI + 0x18],EBX
MOV byte ptr [ESI + 0x1c],AL
TEST AL,0x2
JNZ 0x000bf399
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x38]
ADD ESP,0x10
TEST byte ptr [ESI + 0x1c],0x2
JZ 0x000bf5c1
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [EDI + 0xc]
MOV ECX,dword ptr [EDI + 0x10]
MOV dword ptr [ESP],EDX
LEA EDX,[EBP + 0xffd66180]
MOV dword ptr [ESP + 0x4],ECX
CMP EAX,EDX
JNZ 0x000bf4a8
MOV EBX,dword ptr [ESI + 0x28]
MOV ECX,dword ptr [ESI + 0x24]
MOV EDX,EBX
OR EDX,ECX
JNZ 0x000bf460
MOV EBX,dword ptr [ESP + 0x50]
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
ADD EAX,dword ptr [ESI + 0xc]
ADC EDX,dword ptr [ESI + 0x10]
TEST byte ptr [EBX + 0x1c],0x2
JNZ 0x000bf58b
MOV EDI,dword ptr [ESP + 0x50]
MOV dword ptr [EDI + 0xc],EAX
MOV dword ptr [EDI + 0x10],EDX
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x50]
TEST byte ptr [EAX + 0x92],0x20
JZ 0x000bf399
TEST byte ptr [EAX + 0x1c],0x1
JZ 0x000bf521
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
TEST CL,0x1
JNZ 0x000bf53c
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,ECX
OR EAX,0x1
MOV dword ptr [ESI + 0x8],EDX
MOV byte ptr [ESI + 0x1c],AL
TEST AL,0x4
JNZ 0x000bf557
OR ECX,0x5
MOV dword ptr [ESI + 0x14],0x0
MOV dword ptr [ESI + 0x18],0x0
MOV byte ptr [ESI + 0x1c],CL
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
ADD EAX,-0x1
ADC EDX,-0x1
ADD EAX,ECX
ADC EDX,EBX
NEG ECX
MOV EDI,EAX
ADC EBX,0x0
MOV EAX,EDX
AND EDI,ECX
NEG EBX
MOV dword ptr [ESP],EDI
AND EAX,EBX
MOV dword ptr [ESP + 0x4],EAX
JMP 0x000bf3d7
SUB ESP,0xc
PUSH ESI
CALL EAX
ADD ESP,0x10
TEST byte ptr [ESI + 0x1c],0x2
JNZ 0x000bf2e0
JMP 0x000bf506
SUB ESP,0xc
PUSH ESI
CALL EAX
MOVZX ECX,byte ptr [ESI + 0x1c]
MOV EBX,EDX
ADD ESP,0x10
OR EBX,EAX
JZ 0x000bf4f0
SHR CL,0x1
MOV EBX,ECX
MOV ECX,dword ptr [ESP]
AND EBX,0x1
MOV byte ptr [ESP + 0xf],BL
MOV EBX,dword ptr [ESP + 0x4]
ADD ECX,-0x1
ADC EBX,-0x1
ADD ECX,EAX
ADC EBX,EDX
NEG EAX
MOV EDI,ECX
ADC EDX,0x0
AND EDI,EAX
NEG EDX
MOV dword ptr [ESP],EDI
MOV EAX,EDX
AND EAX,EBX
MOV dword ptr [ESP + 0x4],EAX
JMP 0x000bf4fb
SHR CL,0x1
MOV EAX,ECX
AND EAX,0x1
MOV byte ptr [ESP + 0xf],AL
CMP byte ptr [ESP + 0xf],0x0
JNZ 0x000bf3d7
LEA EAX,[EBP + 0xfff29cc8]
PUSH ECX
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfff1f60c]
PUSH 0xcf
PUSH EAX
CALL 0x0005f0b0
LEA EAX,[EBP + 0xfff29c84]
PUSH EDI
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfff1f60c]
PUSH 0xc5
PUSH EAX
CALL 0x0005f0b0
LEA EAX,[EBP + 0xfff29a20]
PUSH EBX
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfff1f60c]
PUSH 0x142
PUSH EAX
CALL 0x0005f0b0
LEA EAX,[EBP + 0xfff29a10]
PUSH ECX
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfff1f60c]
PUSH 0x14b
PUSH EAX
CALL 0x0005f0b0
LEA EAX,[EBP + 0xfff29c4c]
PUSH ESI
PUSH EAX
LEA EAX,[EBP + 0xfff1f60c]
PUSH 0xe3
PUSH EAX
CALL 0x0005f0b0
PUSH EAX
LEA EAX,[EBP + 0xfff29c00]
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfff1f60c]
PUSH 0x231
PUSH EAX
CALL 0x0005f0b0
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x20]
LEA EAX,[EBP + 0xfff289e0]
PUSH EAX
CALL 0x000263b0
POP EBP
POP EDX
PUSH ESI
PUSH EAX
CALL 0x0005acd0
LEA EAX,[EBP + 0xfff299fc]
PUSH EDX
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfff1f60c]
PUSH 0x163
PUSH EAX
CALL 0x0005f0b0
(translation_unit "void FUN_000bf250(int *param_1,int *param_2)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0();\n}\n\n" (function_definition "void FUN_000bf250(int *param_1,int *param_2)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0();\n}" primitive_type (function_declarator "FUN_000bf250(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "longlong lVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int **ppiVar9;" primitive_type (pointer_declarator "**ppiVar9" * (pointer_declarator "*ppiVar9" * identifier)) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "longlong lVar13;" type_identifier identifier ;) (declaration "int *piStack_5c;" primitive_type (pointer_declarator "*piStack_5c" * identifier) ;) (declaration "undefined4 *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "undefined *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "undefined8 local_4c;" type_identifier identifier ;) (declaration "byte local_3d;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "FUN_0004fb82();" (call_expression "FUN_0004fb82()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar10 = (int *)(unaff_EBP + 0x242daa);" (assignment_expression "piVar10 = (int *)(unaff_EBP + 0x242daa)" identifier = (cast_expression "(int *)(unaff_EBP + 0x242daa)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x242daa)" ( (binary_expression "unaff_EBP + 0x242daa" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = &local_34;" (assignment_expression "puStack_58 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = param_2;" (assignment_expression "local_24 = param_2" identifier = identifier) ;) (expression_statement "piStack_5c = param_1;" (assignment_expression "piStack_5c = param_1" identifier = identifier) ;) (expression_statement "FUN_000bf100();" (call_expression "FUN_000bf100()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 7);" (assignment_expression "bVar1 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\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    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n  }" { (if_statement "if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x92) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x92) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x92) & 0x20)" ( (binary_expression "*(byte *)((int)param_1 + 0x92) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x92)" * (cast_expression "(byte *)((int)param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x92)" ( (binary_expression "(int)param_1 + 0x92" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" ( (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }" { (expression_statement "iVar4 = param_1[2];" (assignment_expression "iVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (if_statement "if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }" { (expression_statement "param_2[1] = param_1[1];" (assignment_expression "param_2[1] = param_1[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = iVar4;" (assignment_expression "param_2[2] = iVar4" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 1;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }" { (expression_statement "param_2[5] = 0;" (assignment_expression "param_2[5] = 0" (subscript_expression "param_2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[6] = 0;" (assignment_expression "param_2[6] = 0" (subscript_expression "param_2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 5;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 5" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);" statement_identifier : (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x16c7ba)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16c7ba)" ( (binary_expression "unaff_EBP + 0x16c7ba" identifier + number_literal) )))) ;)) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0x14b;" (assignment_expression "puStack_58 = (undefined4 *)0x14b" identifier = (cast_expression "(undefined4 *)0x14b" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);" statement_identifier : (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x16c7ca)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16c7ca)" ( (binary_expression "unaff_EBP + 0x16c7ca" identifier + number_literal) )))) ;)) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0x142;" (assignment_expression "puStack_58 = (undefined4 *)0x142" identifier = (cast_expression "(undefined4 *)0x142" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }" else (compound_statement "{\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }" { (expression_statement "pcVar2 = *(code **)(*param_2 + 0xc);" (assignment_expression "pcVar2 = *(code **)(*param_2 + 0xc)" identifier = (pointer_expression "*(code **)(*param_2 + 0xc)" * (cast_expression "(code **)(*param_2 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xc)" ( (binary_expression "*param_2 + 0xc" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x92) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x92) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x92) & 0x20)" ( (binary_expression "*(byte *)((int)param_1 + 0x92) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x92)" * (cast_expression "(byte *)((int)param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x92)" ( (binary_expression "(int)param_1 + 0x92" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    /* WARNING: Subroutine does not return */\n      FUN_0005f0b0();\n    }" { (expression_statement "local_4c._0_4_ = param_1[3];" (assignment_expression "local_4c._0_4_ = param_1[3]" (field_expression "local_4c._0_4_" identifier . field_identifier) = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_4c._4_4_ = param_1[4];" (assignment_expression "local_4c._4_4_ = param_1[4]" (field_expression "local_4c._4_4_" identifier . field_identifier) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (if_statement "if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" if (parenthesized_expression "(pcVar2 == (code *)(unaff_EBP + -0x570d6))" ( (binary_expression "pcVar2 == (code *)(unaff_EBP + -0x570d6)" identifier == (cast_expression "(code *)(unaff_EBP + -0x570d6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x570d6)" ( (binary_expression "unaff_EBP + -0x570d6" identifier + number_literal) )))) )) (compound_statement "{\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }" { (expression_statement "iVar4 = param_2[10];" (assignment_expression "iVar4 = param_2[10]" identifier = (subscript_expression "param_2[10]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_2[9];" (assignment_expression "uVar3 = param_2[9]" identifier = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }" if (parenthesized_expression "(iVar4 != 0 || uVar3 != 0)" ( (binary_expression "iVar4 != 0 || uVar3 != 0" (binary_expression "iVar4 != 0" identifier != number_literal) || (binary_expression "uVar3 != 0" identifier != number_literal)) )) (compound_statement "{\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }" { (expression_statement "bVar11 = (uint)local_4c != 0;" (assignment_expression "bVar11 = (uint)local_4c != 0" identifier = (binary_expression "(uint)local_4c != 0" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal)) ;) (expression_statement "uVar6 = (uint)local_4c - 1;" (assignment_expression "uVar6 = (uint)local_4c - 1" identifier = (binary_expression "(uint)local_4c - 1" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal)) ;) (expression_statement "local_4c._0_4_ = uVar6 + uVar3 & -uVar3;" (assignment_expression "local_4c._0_4_ = uVar6 + uVar3 & -uVar3" (field_expression "local_4c._0_4_" identifier . field_identifier) = (binary_expression "uVar6 + uVar3 & -uVar3" (binary_expression "uVar6 + uVar3" identifier + identifier) & (unary_expression "-uVar3" - identifier))) ;) (expression_statement "local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));" (assignment_expression "local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0))" (field_expression "local_4c._4_4_" identifier . field_identifier) = (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0))" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3)" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11" (parenthesized_expression "(local_4c._4_4_ - 1)" ( (binary_expression "local_4c._4_4_ - 1" (field_expression "local_4c._4_4_" identifier . field_identifier) - number_literal) )) + (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) + identifier) + (cast_expression "(uint)CARRY4(uVar6,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar6,uVar3)" identifier (argument_list "(uVar6,uVar3)" ( identifier , identifier ))))) & (unary_expression "-(iVar4 + (uint)(uVar3 != 0))" - (parenthesized_expression "(iVar4 + (uint)(uVar3 != 0))" ( (binary_expression "iVar4 + (uint)(uVar3 != 0)" identifier + (call_expression "(uint)(uVar3 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )))) ))))) ;) })) }) (else_clause "else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" else (compound_statement "{\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" { (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" identifier = identifier) ;) (expression_statement "lVar13 = (*pcVar2)();" (assignment_expression "lVar13 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }" { (expression_statement "lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);" (assignment_expression "lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" identifier = (binary_expression "lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" identifier + (call_expression "CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" identifier (argument_list "((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" ( (binary_expression "(local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0)" (parenthesized_expression "(local_4c._4_4_ - 1)" ( (binary_expression "local_4c._4_4_ - 1" (field_expression "local_4c._4_4_" identifier . field_identifier) - number_literal) )) + (call_expression "(uint)((uint)local_4c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_4c != 0)" ( (binary_expression "(uint)local_4c != 0" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )))) , (binary_expression "(uint)local_4c - 1" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) ))))) ;) (expression_statement "local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;" (assignment_expression "local_4c._0_4_ = (uint)lVar5 & -(int)lVar13" (field_expression "local_4c._0_4_" identifier . field_identifier) = (binary_expression "(uint)lVar5 & -(int)lVar13" (cast_expression "(uint)lVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar13" - (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);" (assignment_expression "local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20)" (field_expression "local_4c._4_4_" identifier . field_identifier) = (binary_expression "-((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20)" (unary_expression "-((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0))" ( (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)" (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) ))) + (call_expression "(uint)((int)lVar13 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar13 != 0)" ( (binary_expression "(int)lVar13 != 0" (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))) & (call_expression "(uint)((ulonglong)lVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar5 >> 0x20)" ( (binary_expression "(ulonglong)lVar5 >> 0x20" (cast_expression "(ulonglong)lVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "local_3d = *(byte *)(param_2 + 7) >> 1 & 1;" (assignment_expression "local_3d = *(byte *)(param_2 + 7) >> 1 & 1" identifier = (binary_expression "*(byte *)(param_2 + 7) >> 1 & 1" (binary_expression "*(byte *)(param_2 + 7) >> 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if (local_3d == 0) goto LAB_000bf506;" if (parenthesized_expression "(local_3d == 0)" ( (binary_expression "local_3d == 0" identifier == number_literal) )) (goto_statement "goto LAB_000bf506;" goto statement_identifier ;)) }))) (expression_statement "uVar3 = param_2[3];" (assignment_expression "uVar3 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_2[4];" (assignment_expression "iVar4 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 2)" ( (binary_expression "*(byte *)(param_1 + 7) & 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }" { (expression_statement "param_1[3] = (uint)local_4c + param_2[3];" (assignment_expression "param_1[3] = (uint)local_4c + param_2[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "(uint)local_4c + param_2[3]" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) + (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);" (assignment_expression "param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (binary_expression "local_4c._4_4_ + iVar4" (field_expression "local_4c._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)local_4c,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_4c,uVar3)" identifier (argument_list "((uint)local_4c,uVar3)" ( (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (return_statement "return;" return ;) })) (expression_statement "puStack_54 = &UNK_0016c9aa + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016c9aa + unaff_EBP" identifier = (binary_expression "&UNK_0016c9aa + unaff_EBP" (pointer_expression "&UNK_0016c9aa" & identifier) + identifier)) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0x231;" (assignment_expression "puStack_58 = (undefined4 *)0x231" identifier = (cast_expression "(undefined4 *)0x231" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }" if (parenthesized_expression "(pcVar2 == (code *)(unaff_EBP + -0x570d6))" ( (binary_expression "pcVar2 == (code *)(unaff_EBP + -0x570d6)" identifier == (cast_expression "(code *)(unaff_EBP + -0x570d6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x570d6)" ( (binary_expression "unaff_EBP + -0x570d6" identifier + number_literal) )))) )) (compound_statement "{\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }" { (expression_statement "uVar12 = *(undefined8 *)(param_2 + 9);" (assignment_expression "uVar12 = *(undefined8 *)(param_2 + 9)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 9)" * (cast_expression "(undefined8 *)(param_2 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }" else (compound_statement "{\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n    }" { (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" identifier = identifier) ;) (expression_statement "uVar12 = (*pcVar2)();" (assignment_expression "uVar12 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }" if (parenthesized_expression "((*(byte *)(param_2 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_2 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 2)" ( (binary_expression "*(byte *)(param_2 + 7) & 2" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }" { (labeled_statement "LAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);" statement_identifier : (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16ca72)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x16ca72)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16ca72)" ( (binary_expression "unaff_EBP + 0x16ca72" identifier + number_literal) )))) ;)) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0xcf;" (assignment_expression "puStack_58 = (undefined4 *)0xcf" identifier = (cast_expression "(undefined4 *)0xcf" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);" (assignment_expression "piStack_5c = (int *)((ulonglong)uVar12 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar12 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar12 >> 0x20)" ( (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "ppiVar9 = (int **)&local_4c;" (assignment_expression "ppiVar9 = (int **)&local_4c" identifier = (cast_expression "(int **)&local_4c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_4c" & identifier))) ;) (expression_statement "puStack_54 = (undefined *)0x0;" (assignment_expression "puStack_54 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_58 = (undefined4 *)0x0;" (assignment_expression "puStack_58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);" (assignment_expression "local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" identifier = (call_expression "FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" identifier (argument_list "(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" ( (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_2[3]" identifier [ number_literal ]) , (subscript_expression "param_2[4]" identifier [ number_literal ]) , (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }" if (parenthesized_expression "(local_4c == -1)" ( (binary_expression "local_4c == -1" identifier == number_literal) )) (compound_statement "{\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }" { (expression_statement "iVar4 = param_1[8];" (assignment_expression "iVar4 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x16b78a);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x16b78a)" identifier = (cast_expression "(int *)(unaff_EBP + 0x16b78a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16b78a)" ( (binary_expression "unaff_EBP + 0x16b78a" identifier + number_literal) )))) ;) (expression_statement "piVar7 = (int *)gettext();" (assignment_expression "piVar7 = (int *)gettext()" identifier = (cast_expression "(int *)gettext()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar10 = piStack_5c;" (assignment_expression "piVar10 = piStack_5c" identifier = identifier) ;) (expression_statement "ppiVar9 = &piStack_5c;" (assignment_expression "ppiVar9 = &piStack_5c" identifier = (pointer_expression "&piStack_5c" & identifier)) ;) (expression_statement "piStack_5c = piVar7;" (assignment_expression "piStack_5c = piVar7" identifier = identifier) ;) (expression_statement "puStack_58 = (undefined4 *)iVar4;" (assignment_expression "puStack_58 = (undefined4 *)iVar4" identifier = (cast_expression "(undefined4 *)iVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0005acd0();" (call_expression "FUN_0005acd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = extraout_EDX_00;" (assignment_expression "uVar8 = extraout_EDX_00" identifier = identifier) ;) (labeled_statement "LAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)((int)ppiVar9 + -4) = uVar8;" (assignment_expression "*(undefined4 *)((int)ppiVar9 + -4) = uVar8" (pointer_expression "*(undefined4 *)((int)ppiVar9 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar9 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar9 + -4)" ( (binary_expression "(int)ppiVar9 + -4" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;" (assignment_expression "*(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981" (pointer_expression "*(int **)((int)ppiVar9 + -8)" * (cast_expression "(int **)((int)ppiVar9 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar9 + -8)" ( (binary_expression "(int)ppiVar9 + -8" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar10 + -0x35981" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;" (assignment_expression "*(undefined4 *)((int)ppiVar9 + -0xc) = 0x163" (pointer_expression "*(undefined4 *)((int)ppiVar9 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar9 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar9 + -0xc)" ( (binary_expression "(int)ppiVar9 + -0xc" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;" (assignment_expression "*(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d" (pointer_expression "*(int **)((int)ppiVar9 + -0x10)" * (cast_expression "(int **)((int)ppiVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar9 + -0x10)" ( (binary_expression "(int)ppiVar9 + -0x10" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar10 + -0x3827d" identifier + number_literal)) ;) comment (expression_statement "*(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;" (assignment_expression "*(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc" (pointer_expression "*(undefined **)((int)ppiVar9 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar9 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar9 + -0x14)" ( (binary_expression "(int)ppiVar9 + -0x14" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_000bf5dc" & identifier)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" ( (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }" { (if_statement "if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 4) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 4)" ( (binary_expression "*(byte *)(param_1 + 7) & 4" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    /* WARNING: Subroutine does not return */\n        FUN_0005f0b0();\n      }" { (expression_statement "puStack_54 = &UNK_0016c9f6 + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016c9f6 + unaff_EBP" identifier = (binary_expression "&UNK_0016c9f6 + unaff_EBP" (pointer_expression "&UNK_0016c9f6" & identifier) + identifier)) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0xe3;" (assignment_expression "puStack_58 = (undefined4 *)0xe3" identifier = (cast_expression "(undefined4 *)0xe3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar3 = param_1[5];" (assignment_expression "uVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_1[6];" (assignment_expression "iVar4 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 7);" (assignment_expression "bVar1 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }" { (expression_statement "*(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);" (assignment_expression "*(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1)" (pointer_expression "*(longlong *)(param_2 + 1)" * (cast_expression "(longlong *)(param_2 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) = (binary_expression "local_4c + *(longlong *)(param_1 + 1)" identifier + (pointer_expression "*(longlong *)(param_1 + 1)" * (cast_expression "(longlong *)(param_1 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))))) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 1;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_000bf557;" 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_000bf557;" goto statement_identifier ;)) (expression_statement "param_2[5] = (uint)local_4c + uVar6;" (assignment_expression "param_2[5] = (uint)local_4c + uVar6" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "(uint)local_4c + uVar6" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier)) ;) (expression_statement "param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;" (assignment_expression "param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (subscript_expression "param_2[6]" identifier [ number_literal ]) = (binary_expression "(int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (binary_expression "(int)((ulonglong)local_4c >> 0x20) + iVar4" (cast_expression "(int)((ulonglong)local_4c >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)local_4c >> 0x20)" ( (binary_expression "(ulonglong)local_4c >> 0x20" (cast_expression "(ulonglong)local_4c" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + identifier) + (cast_expression "(uint)CARRY4((uint)local_4c,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_4c,uVar3)" identifier (argument_list "((uint)local_4c,uVar3)" ( (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 5;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 5" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\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          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }" { (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" identifier = identifier) ;) (expression_statement "(**(code **)(*param_2 + 0x38))();" (call_expression "(**(code **)(*param_2 + 0x38))()" (parenthesized_expression "(**(code **)(*param_2 + 0x38))" ( (pointer_expression "**(code **)(*param_2 + 0x38)" * (pointer_expression "*(code **)(*param_2 + 0x38)" * (cast_expression "(code **)(*param_2 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x38)" ( (binary_expression "*param_2 + 0x38" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = extraout_EDX;" (assignment_expression "uVar8 = extraout_EDX" identifier = identifier) ;) (if_statement "if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;" if (parenthesized_expression "((*(byte *)(param_2 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_2 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 2)" ( (binary_expression "*(byte *)(param_2 + 7) & 2" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000bf5c1;" goto statement_identifier ;)) })) (return_statement "return;" return ;) })) (goto_statement "goto LAB_000bf53c;" goto statement_identifier ;) })) }))) (expression_statement "puStack_54 = &UNK_0016ca2e + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016ca2e + unaff_EBP" identifier = (binary_expression "&UNK_0016ca2e + unaff_EBP" (pointer_expression "&UNK_0016ca2e" & identifier) + identifier)) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0xc5;" (assignment_expression "puStack_58 = (undefined4 *)0xc5" identifier = (cast_expression "(undefined4 *)0xc5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* DWARF original prototype: void add_output_section_data(Output_section * this, Output_section_data\n   * posd) */\n\nvoid __thiscall\ngold::Output_section::add_output_section_data(Output_section *this,Output_section_data *posd)\n\n{\n  off_t *poVar1;\n  byte bVar2;\n  _func_int_varargs *p_Var3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  off_t oVar7;\n  int iVar8;\n  uint uVar9;\n  char *format;\n  undefined4 uVar10;\n  undefined4 extraout_EDX;\n  int extraout_EDX_00;\n  off_t oVar11;\n  undefined8 local_4c;\n  byte local_3d;\n  Input_section inp;\n  \n  inp.shndx_ = 0xffffffff;\n  inp.p2align_ = 0;\n  inp.section_order_index_ = 0;\n  inp.u1_.data_size._0_4_ = 0;\n  inp.u1_.data_size._4_4_ = 0;\n  inp.u2_.posd = posd;\n  add_output_section_data(this,&inp);\n  bVar2 = (posd->super_Output_data).field_0x1c;\n  if ((bVar2 & 2) == 0) {\n    if ((this->field_0x92 & 0x20) != 0) {\n      if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }\n      goto LAB_000bf521;\n    }\n  }\n  else {\n    p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];\n    if ((this->field_0x92 & 0x20) == 0) {\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }\n    if (p_Var3 == Output_section_data::do_addralign) {\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }\n    else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }\n    oVar11 = Free_list::allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0);\n    if (oVar11 == -1) {\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }\n    bVar2 = (this->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) == 0) {\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }\n    iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);\n    uVar9 = (uint)(this->super_Output_data).address_;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    local_4c._0_4_ = (uint)oVar11;\n    local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);\n    poVar1 = &(this->super_Output_data).offset_;\n    oVar11 = *poVar1;\n    oVar7 = *poVar1;\n    iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);\n    bVar2 = (posd->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) != 0) {\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }\n    *(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;\n    *(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);\n    (posd->super_Output_data).field_0x1c = bVar2 | 1;\n    if ((bVar2 & 4) != 0) {\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    *(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;\n    *(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n    (posd->super_Output_data).field_0x1c = bVar2 | 5;\n    if (((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n  }\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Output_section::add_output_section_data(Output_section *this,Output_section_data *posd)\n\n{\n  off_t *poVar1;\n  byte bVar2;\n  _func_int_varargs *p_Var3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  off_t oVar7;\n  int iVar8;\n  uint uVar9;\n  char *format;\n  undefined4 uVar10;\n  undefined4 extraout_EDX;\n  int extraout_EDX_00;\n  off_t oVar11;\n  undefined8 local_4c;\n  byte local_3d;\n  Input_section inp;\n  \n  inp.shndx_ = 0xffffffff;\n  inp.p2align_ = 0;\n  inp.section_order_index_ = 0;\n  inp.u1_.data_size._0_4_ = 0;\n  inp.u1_.data_size._4_4_ = 0;\n  inp.u2_.posd = posd;\n  add_output_section_data(this,&inp);\n  bVar2 = (posd->super_Output_data).field_0x1c;\n  if ((bVar2 & 2) == 0) {\n    if ((this->field_0x92 & 0x20) != 0) {\n      if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }\n      goto LAB_000bf521;\n    }\n  }\n  else {\n    p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];\n    if ((this->field_0x92 & 0x20) == 0) {\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }\n    if (p_Var3 == Output_section_data::do_addralign) {\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }\n    else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }\n    oVar11 = Free_list::allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0);\n    if (oVar11 == -1) {\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }\n    bVar2 = (this->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) == 0) {\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }\n    iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);\n    uVar9 = (uint)(this->super_Output_data).address_;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    local_4c._0_4_ = (uint)oVar11;\n    local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);\n    poVar1 = &(this->super_Output_data).offset_;\n    oVar11 = *poVar1;\n    oVar7 = *poVar1;\n    iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);\n    bVar2 = (posd->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) != 0) {\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }\n    *(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;\n    *(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);\n    (posd->super_Output_data).field_0x1c = bVar2 | 1;\n    if ((bVar2 & 4) != 0) {\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    *(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;\n    *(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n    (posd->super_Output_data).field_0x1c = bVar2 | 5;\n    if (((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section::" identifier : : identifier : :) (function_declarator "add_output_section_data(Output_section *this,Output_section_data *posd)" identifier (parameter_list "(Output_section *this,Output_section_data *posd)" ( (parameter_declaration "Output_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_section_data *posd" type_identifier (pointer_declarator "*posd" * identifier)) ))) (compound_statement "{\n  off_t *poVar1;\n  byte bVar2;\n  _func_int_varargs *p_Var3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  off_t oVar7;\n  int iVar8;\n  uint uVar9;\n  char *format;\n  undefined4 uVar10;\n  undefined4 extraout_EDX;\n  int extraout_EDX_00;\n  off_t oVar11;\n  undefined8 local_4c;\n  byte local_3d;\n  Input_section inp;\n  \n  inp.shndx_ = 0xffffffff;\n  inp.p2align_ = 0;\n  inp.section_order_index_ = 0;\n  inp.u1_.data_size._0_4_ = 0;\n  inp.u1_.data_size._4_4_ = 0;\n  inp.u2_.posd = posd;\n  add_output_section_data(this,&inp);\n  bVar2 = (posd->super_Output_data).field_0x1c;\n  if ((bVar2 & 2) == 0) {\n    if ((this->field_0x92 & 0x20) != 0) {\n      if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }\n      goto LAB_000bf521;\n    }\n  }\n  else {\n    p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];\n    if ((this->field_0x92 & 0x20) == 0) {\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }\n    if (p_Var3 == Output_section_data::do_addralign) {\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }\n    else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }\n    oVar11 = Free_list::allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0);\n    if (oVar11 == -1) {\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }\n    bVar2 = (this->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) == 0) {\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }\n    iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);\n    uVar9 = (uint)(this->super_Output_data).address_;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    local_4c._0_4_ = (uint)oVar11;\n    local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);\n    poVar1 = &(this->super_Output_data).offset_;\n    oVar11 = *poVar1;\n    oVar7 = *poVar1;\n    iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);\n    bVar2 = (posd->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) != 0) {\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }\n    *(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;\n    *(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);\n    (posd->super_Output_data).field_0x1c = bVar2 | 1;\n    if ((bVar2 & 4) != 0) {\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    *(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;\n    *(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n    (posd->super_Output_data).field_0x1c = bVar2 | 5;\n    if (((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n  }\n  return;\n}" { (declaration "off_t *poVar1;" type_identifier (pointer_declarator "*poVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "_func_int_varargs *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "off_t oVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "int extraout_EDX_00;" primitive_type identifier ;) (declaration "off_t oVar11;" type_identifier identifier ;) (declaration "undefined8 local_4c;" type_identifier identifier ;) (declaration "byte local_3d;" type_identifier identifier ;) (declaration "Input_section inp;" type_identifier identifier ;) (expression_statement "inp.shndx_ = 0xffffffff;" (assignment_expression "inp.shndx_ = 0xffffffff" (field_expression "inp.shndx_" identifier . field_identifier) = number_literal) ;) (expression_statement "inp.p2align_ = 0;" (assignment_expression "inp.p2align_ = 0" (field_expression "inp.p2align_" identifier . field_identifier) = number_literal) ;) (expression_statement "inp.section_order_index_ = 0;" (assignment_expression "inp.section_order_index_ = 0" (field_expression "inp.section_order_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "inp.u1_.data_size._0_4_ = 0;" (assignment_expression "inp.u1_.data_size._0_4_ = 0" (field_expression "inp.u1_.data_size._0_4_" (field_expression "inp.u1_.data_size" (field_expression "inp.u1_" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "inp.u1_.data_size._4_4_ = 0;" (assignment_expression "inp.u1_.data_size._4_4_ = 0" (field_expression "inp.u1_.data_size._4_4_" (field_expression "inp.u1_.data_size" (field_expression "inp.u1_" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "inp.u2_.posd = posd;" (assignment_expression "inp.u2_.posd = posd" (field_expression "inp.u2_.posd" (field_expression "inp.u2_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_output_section_data(this,&inp);" (call_expression "add_output_section_data(this,&inp)" identifier (argument_list "(this,&inp)" ( identifier , (pointer_expression "&inp" & identifier) ))) ;) (expression_statement "bVar2 = (posd->super_Output_data).field_0x1c;" (assignment_expression "bVar2 = (posd->super_Output_data).field_0x1c" identifier = (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar2 & 2) == 0) {\n    if ((this->field_0x92 & 0x20) != 0) {\n      if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }\n      goto LAB_000bf521;\n    }\n  }\n  else {\n    p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];\n    if ((this->field_0x92 & 0x20) == 0) {\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }\n    if (p_Var3 == Output_section_data::do_addralign) {\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }\n    else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }\n    oVar11 = Free_list::allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0);\n    if (oVar11 == -1) {\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }\n    bVar2 = (this->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) == 0) {\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }\n    iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);\n    uVar9 = (uint)(this->super_Output_data).address_;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    local_4c._0_4_ = (uint)oVar11;\n    local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);\n    poVar1 = &(this->super_Output_data).offset_;\n    oVar11 = *poVar1;\n    oVar7 = *poVar1;\n    iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);\n    bVar2 = (posd->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) != 0) {\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }\n    *(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;\n    *(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);\n    (posd->super_Output_data).field_0x1c = bVar2 | 1;\n    if ((bVar2 & 4) != 0) {\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    *(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;\n    *(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n    (posd->super_Output_data).field_0x1c = bVar2 | 5;\n    if (((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n  }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((this->field_0x92 & 0x20) != 0) {\n      if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }\n      goto LAB_000bf521;\n    }\n  }" { (if_statement "if ((this->field_0x92 & 0x20) != 0) {\n      if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }\n      goto LAB_000bf521;\n    }" if (parenthesized_expression "((this->field_0x92 & 0x20) != 0)" ( (binary_expression "(this->field_0x92 & 0x20) != 0" (parenthesized_expression "(this->field_0x92 & 0x20)" ( (binary_expression "this->field_0x92 & 0x20" (field_expression "this->field_0x92" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }\n      goto LAB_000bf521;\n    }" { (if_statement "if (((this->super_Output_data).field_0x1c & 1) != 0) {\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }" if (parenthesized_expression "(((this->super_Output_data).field_0x1c & 1) != 0)" ( (binary_expression "((this->super_Output_data).field_0x1c & 1) != 0" (parenthesized_expression "((this->super_Output_data).field_0x1c & 1)" ( (binary_expression "(this->super_Output_data).field_0x1c & 1" (field_expression "(this->super_Output_data).field_0x1c" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);\n        if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }\n        goto LAB_000bf53c;\n      }" { (expression_statement "uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4);" (assignment_expression "uVar10 = *(undefined4 *)((int)&(this->super_Output_data).address_ + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(this->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(this->super_Output_data).address_ + 4" (cast_expression "(int)&(this->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data).address_" & (field_expression "(this->super_Output_data).address_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((bVar2 & 1) == 0) {\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }" if (parenthesized_expression "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;\n          *(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;\n          (posd->super_Output_data).field_0x1c = bVar2 | 1;\n          if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }\n          goto LAB_000bf557;\n        }" { (expression_statement "*(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;" (assignment_expression "*(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_" (pointer_expression "*(int *)&(posd->super_Output_data).address_" * (cast_expression "(int *)&(posd->super_Output_data).address_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_data).address_" & (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(int)(this->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super_Output_data).address_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).address_ + 4" (cast_expression "(int)&(posd->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).address_" & (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(posd->super_Output_data).field_0x1c = bVar2 | 1;" (assignment_expression "(posd->super_Output_data).field_0x1c = bVar2 | 1" (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar2 & 4) == 0) {\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }" if (parenthesized_expression "((bVar2 & 4) == 0)" ( (binary_expression "(bVar2 & 4) == 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined4 *)&(posd->super_Output_data).offset_ = 0;\n            *(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;\n            (posd->super_Output_data).field_0x1c = bVar2 | 5;\n            return;\n          }" { (expression_statement "*(undefined4 *)&(posd->super_Output_data).offset_ = 0;" (assignment_expression "*(undefined4 *)&(posd->super_Output_data).offset_ = 0" (pointer_expression "*(undefined4 *)&(posd->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(posd->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_data).offset_" & (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(posd->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).offset_ + 4" (cast_expression "(int)&(posd->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).offset_" & (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(posd->super_Output_data).field_0x1c = bVar2 | 5;" (assignment_expression "(posd->super_Output_data).field_0x1c = bVar2 | 5" (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 | 5" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_000bf557;" goto statement_identifier ;) })) (goto_statement "goto LAB_000bf53c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000bf521;" goto statement_identifier ;) })) }) (else_clause "else {\n    p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];\n    if ((this->field_0x92 & 0x20) == 0) {\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }\n    if (p_Var3 == Output_section_data::do_addralign) {\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }\n    else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }\n    oVar11 = Free_list::allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0);\n    if (oVar11 == -1) {\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }\n    bVar2 = (this->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) == 0) {\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }\n    iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);\n    uVar9 = (uint)(this->super_Output_data).address_;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    local_4c._0_4_ = (uint)oVar11;\n    local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);\n    poVar1 = &(this->super_Output_data).offset_;\n    oVar11 = *poVar1;\n    oVar7 = *poVar1;\n    iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);\n    bVar2 = (posd->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) != 0) {\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }\n    *(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;\n    *(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);\n    (posd->super_Output_data).field_0x1c = bVar2 | 1;\n    if ((bVar2 & 4) != 0) {\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    *(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;\n    *(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n    (posd->super_Output_data).field_0x1c = bVar2 | 5;\n    if (((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n  }" else (compound_statement "{\n    p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];\n    if ((this->field_0x92 & 0x20) == 0) {\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }\n    if (p_Var3 == Output_section_data::do_addralign) {\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }\n    else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }\n    oVar11 = Free_list::allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0);\n    if (oVar11 == -1) {\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }\n    bVar2 = (this->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) == 0) {\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }\n    iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);\n    uVar9 = (uint)(this->super_Output_data).address_;\n    if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }\n    local_4c._0_4_ = (uint)oVar11;\n    local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);\n    poVar1 = &(this->super_Output_data).offset_;\n    oVar11 = *poVar1;\n    oVar7 = *poVar1;\n    iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);\n    bVar2 = (posd->super_Output_data).field_0x1c;\n    if ((bVar2 & 1) != 0) {\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }\n    *(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;\n    *(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);\n    (posd->super_Output_data).field_0x1c = bVar2 | 1;\n    if ((bVar2 & 4) != 0) {\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }\n    *(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;\n    *(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n    (posd->super_Output_data).field_0x1c = bVar2 | 5;\n    if (((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }\n  }" { (expression_statement "p_Var3 = (posd->super_Output_data)._vptr_Output_data[3];" (assignment_expression "p_Var3 = (posd->super_Output_data)._vptr_Output_data[3]" identifier = (subscript_expression "(posd->super_Output_data)._vptr_Output_data[3]" (field_expression "(posd->super_Output_data)._vptr_Output_data" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if ((this->field_0x92 & 0x20) == 0) {\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }" if (parenthesized_expression "((this->field_0x92 & 0x20) == 0)" ( (binary_expression "(this->field_0x92 & 0x20) == 0" (parenthesized_expression "(this->field_0x92 & 0x20)" ( (binary_expression "this->field_0x92 & 0x20" (field_expression "this->field_0x92" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      poVar1 = &(this->super_Output_data).data_size_;\n      iVar8 = (int)*poVar1;\n      iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);\n      local_4c = *poVar1;\n      if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      poVar1 = &(posd->super_Output_data).data_size_;\n      oVar11 = *poVar1;\n      iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);\n      if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }\n      *(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;\n      *(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);\n      return;\n    }" { (expression_statement "poVar1 = &(this->super_Output_data).data_size_;" (assignment_expression "poVar1 = &(this->super_Output_data).data_size_" identifier = (pointer_expression "&(this->super_Output_data).data_size_" & (field_expression "(this->super_Output_data).data_size_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "iVar8 = (int)*poVar1;" (assignment_expression "iVar8 = (int)*poVar1" identifier = (cast_expression "(int)*poVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*poVar1" * identifier))) ;) (expression_statement "iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);" (assignment_expression "iVar4 = *(int *)((int)&(this->super_Output_data).data_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&(this->super_Output_data).data_size_ + 4)" * (cast_expression "(int *)((int)&(this->super_Output_data).data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_data).data_size_ + 4" (cast_expression "(int)&(this->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data).data_size_" & (field_expression "(this->super_Output_data).data_size_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_4c = *poVar1;" (assignment_expression "local_4c = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (if_statement "if (p_Var3 == Output_section_data::do_addralign) {\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }\n      else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" if (parenthesized_expression "(p_Var3 == Output_section_data::do_addralign)" ( (binary_expression "p_Var3 == Output_section_data" identifier == identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n        iVar5 = *(int *)((int)&posd->addralign_ + 4);\n        uVar9 = (uint)posd->addralign_;\n        if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }\n      }" { (expression_statement "iVar5 = *(int *)((int)&posd->addralign_ + 4);" (assignment_expression "iVar5 = *(int *)((int)&posd->addralign_ + 4)" identifier = (pointer_expression "*(int *)((int)&posd->addralign_ + 4)" * (cast_expression "(int *)((int)&posd->addralign_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&posd->addralign_ + 4)" ( (binary_expression "(int)&posd->addralign_ + 4" (cast_expression "(int)&posd->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&posd->addralign_" & (field_expression "posd->addralign_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)posd->addralign_;" (assignment_expression "uVar9 = (uint)posd->addralign_" identifier = (cast_expression "(uint)posd->addralign_" ( (type_descriptor "uint" type_identifier) ) (field_expression "posd->addralign_" identifier -> field_identifier))) ;) (if_statement "if (iVar5 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }" if (parenthesized_expression "(iVar5 != 0 || uVar9 != 0)" ( (binary_expression "iVar5 != 0 || uVar9 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "uVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n          local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);\n        }" { (expression_statement "local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9);" (assignment_expression "local_4c = CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9)" identifier = (call_expression "CONCAT44(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9)" identifier (argument_list "(iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0)),\n                              (iVar8 - 1U) + uVar9 & -uVar9)" ( (binary_expression "iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9) & -(iVar5 + (uint)(uVar9 != 0))" (binary_expression "iVar4 + -1 + (uint)(iVar8 != 0) + iVar5 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9)" (binary_expression "iVar4 + -1 + (uint)(iVar8 != 0) + iVar5" (binary_expression "iVar4 + -1 + (uint)(iVar8 != 0)" (binary_expression "iVar4 + -1" identifier + number_literal) + (call_expression "(uint)(iVar8 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(iVar8 - 1U,uVar9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(iVar8 - 1U,uVar9)" identifier (argument_list "(iVar8 - 1U,uVar9)" ( (binary_expression "iVar8 - 1U" identifier - number_literal) , identifier ))))) & (unary_expression "-(iVar5 + (uint)(uVar9 != 0))" - (parenthesized_expression "(iVar5 + (uint)(uVar9 != 0))" ( (binary_expression "iVar5 + (uint)(uVar9 != 0)" identifier + (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )))) )))) , (binary_expression "(iVar8 - 1U) + uVar9 & -uVar9" (binary_expression "(iVar8 - 1U) + uVar9" (parenthesized_expression "(iVar8 - 1U)" ( (binary_expression "iVar8 - 1U" identifier - number_literal) )) + identifier) & (unary_expression "-uVar9" - identifier)) )))) ;) })) }) (else_clause "else {\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" else (compound_statement "{\n        uVar9 = (*p_Var3)(posd);\n        if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }\n        local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" { (expression_statement "uVar9 = (*p_Var3)(posd);" (assignment_expression "uVar9 = (*p_Var3)(posd)" identifier = (call_expression "(*p_Var3)(posd)" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "(posd)" ( identifier )))) ;) (if_statement "if (extraout_EDX_00 != 0 || uVar9 != 0) {\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }" if (parenthesized_expression "(extraout_EDX_00 != 0 || uVar9 != 0)" ( (binary_expression "extraout_EDX_00 != 0 || uVar9 != 0" (binary_expression "extraout_EDX_00 != 0" identifier != number_literal) || (binary_expression "uVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n          local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);\n        }" { (expression_statement "local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9);" (assignment_expression "local_4c = CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9)" identifier = (call_expression "CONCAT44(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9)" identifier (argument_list "(-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9),(iVar8 - 1U) + uVar9 & -uVar9)" ( (binary_expression "-(extraout_EDX_00 + (uint)(uVar9 != 0)) &\n                              iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9)" (unary_expression "-(extraout_EDX_00 + (uint)(uVar9 != 0))" - (parenthesized_expression "(extraout_EDX_00 + (uint)(uVar9 != 0))" ( (binary_expression "extraout_EDX_00 + (uint)(uVar9 != 0)" identifier + (call_expression "(uint)(uVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )))) ))) & (binary_expression "iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00 +\n                              (uint)CARRY4(iVar8 - 1U,uVar9)" (binary_expression "iVar4 + -1 + (uint)(iVar8 != 0) + extraout_EDX_00" (binary_expression "iVar4 + -1 + (uint)(iVar8 != 0)" (binary_expression "iVar4 + -1" identifier + number_literal) + (call_expression "(uint)(iVar8 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(iVar8 - 1U,uVar9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(iVar8 - 1U,uVar9)" identifier (argument_list "(iVar8 - 1U,uVar9)" ( (binary_expression "iVar8 - 1U" identifier - number_literal) , identifier )))))) , (binary_expression "(iVar8 - 1U) + uVar9 & -uVar9" (binary_expression "(iVar8 - 1U) + uVar9" (parenthesized_expression "(iVar8 - 1U)" ( (binary_expression "iVar8 - 1U" identifier - number_literal) )) + identifier) & (unary_expression "-uVar9" - identifier)) )))) ;) })) (expression_statement "local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1;" (assignment_expression "local_3d = (byte)(posd->super_Output_data).field_0x1c >> 1 & 1" identifier = (binary_expression "(byte)(posd->super_Output_data).field_0x1c >> 1 & 1" (binary_expression "(byte)(posd->super_Output_data).field_0x1c >> 1" (field_expression "(byte)(posd->super_Output_data).field_0x1c" (call_expression "(byte)(posd->super_Output_data)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) ))) . field_identifier) >> number_literal) & number_literal)) ;) (if_statement "if (local_3d == 0) goto LAB_000bf506;" if (parenthesized_expression "(local_3d == 0)" ( (binary_expression "local_3d == 0" identifier == number_literal) )) (goto_statement "goto LAB_000bf506;" goto statement_identifier ;)) }))) (expression_statement "poVar1 = &(posd->super_Output_data).data_size_;" (assignment_expression "poVar1 = &(posd->super_Output_data).data_size_" identifier = (pointer_expression "&(posd->super_Output_data).data_size_" & (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "oVar11 = *poVar1;" (assignment_expression "oVar11 = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (expression_statement "iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);" (assignment_expression "iVar8 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&(posd->super_Output_data).data_size_ + 4)" * (cast_expression "(int *)((int)&(posd->super_Output_data).data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).data_size_ + 4" (cast_expression "(int)&(posd->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).data_size_" & (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (((this->super_Output_data).field_0x1c & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }" if (parenthesized_expression "(((this->super_Output_data).field_0x1c & 2) != 0)" ( (binary_expression "((this->super_Output_data).field_0x1c & 2) != 0" (parenthesized_expression "((this->super_Output_data).field_0x1c & 2)" ( (binary_expression "(this->super_Output_data).field_0x1c & 2" (field_expression "(this->super_Output_data).field_0x1c" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "*(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1;" (assignment_expression "*(uint *)&(this->super_Output_data).data_size_ = (uint)local_4c + (int)*poVar1" (pointer_expression "*(uint *)&(this->super_Output_data).data_size_" * (cast_expression "(uint *)&(this->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data).data_size_" & (field_expression "(this->super_Output_data).data_size_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "(uint)local_4c + (int)*poVar1" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(int)*poVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*poVar1" * identifier)))) ;) (expression_statement "*(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11);" (assignment_expression "*(uint *)((int)&(this->super_Output_data).data_size_ + 4) =\n           local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11)" (pointer_expression "*(uint *)((int)&(this->super_Output_data).data_size_ + 4)" * (cast_expression "(uint *)((int)&(this->super_Output_data).data_size_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(this->super_Output_data).data_size_ + 4" (cast_expression "(int)&(this->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data).data_size_" & (field_expression "(this->super_Output_data).data_size_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (binary_expression "local_4c._4_4_ + iVar8 + (uint)CARRY4((uint)local_4c,(uint)oVar11)" (binary_expression "local_4c._4_4_ + iVar8" (field_expression "local_4c._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)local_4c,(uint)oVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_4c,(uint)oVar11)" identifier (argument_list "((uint)local_4c,(uint)oVar11)" ( (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)oVar11" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (return_statement "return;" return ;) })) (if_statement "if (p_Var3 == Output_section_data::do_addralign) {\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }\n    else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }" if (parenthesized_expression "(p_Var3 == Output_section_data::do_addralign)" ( (binary_expression "p_Var3 == Output_section_data" identifier == identifier) (ERROR "::do_addralign" : : identifier) )) (compound_statement "{\n      iVar8 = (int)posd->addralign_;\n      uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);\n    }" { (expression_statement "iVar8 = (int)posd->addralign_;" (assignment_expression "iVar8 = (int)posd->addralign_" identifier = (cast_expression "(int)posd->addralign_" ( (type_descriptor "int" primitive_type) ) (field_expression "posd->addralign_" identifier -> field_identifier))) ;) (expression_statement "uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4);" (assignment_expression "uVar10 = *(undefined4 *)((int)&posd->addralign_ + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&posd->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&posd->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&posd->addralign_ + 4)" ( (binary_expression "(int)&posd->addralign_ + 4" (cast_expression "(int)&posd->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&posd->addralign_" & (field_expression "posd->addralign_" identifier -> field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }" else (compound_statement "{\n      iVar8 = (*p_Var3)(posd);\n      uVar10 = extraout_EDX;\n      if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n    }" { (expression_statement "iVar8 = (*p_Var3)(posd);" (assignment_expression "iVar8 = (*p_Var3)(posd)" identifier = (call_expression "(*p_Var3)(posd)" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "(posd)" ( identifier )))) ;) (expression_statement "uVar10 = extraout_EDX;" (assignment_expression "uVar10 = extraout_EDX" identifier = identifier) ;) (if_statement "if (((posd->super_Output_data).field_0x1c & 2) == 0) {\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "(((posd->super_Output_data).field_0x1c & 2) == 0)" ( (binary_expression "((posd->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((posd->super_Output_data).field_0x1c & 2)" ( (binary_expression "(posd->super_Output_data).field_0x1c & 2" (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000bf506:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }" { (labeled_statement "LAB_000bf506:\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 ") ))) ;)) })) }))) (ERROR "oVar11 = Free_list::" (assignment_expression "oVar11 = Free_list" identifier = identifier) : :) (expression_statement "allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0);" (call_expression "allocate(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0)" identifier (argument_list "(&this->free_list_,(posd->super_Output_data).data_size_,\n                                 CONCAT44(uVar10,iVar8),0)" ( (pointer_expression "&this->free_list_" & (field_expression "this->free_list_" identifier -> field_identifier)) , (field_expression "(posd->super_Output_data).data_size_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) , (call_expression "CONCAT44(uVar10,iVar8)" identifier (argument_list "(uVar10,iVar8)" ( identifier , identifier ))) , number_literal ))) ;) (if_statement "if (oVar11 == -1) {\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }" if (parenthesized_expression "(oVar11 == -1)" ( (binary_expression "oVar11 == -1" identifier == number_literal) )) (compound_statement "{\n      pcVar6 = this->name_;\n      format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n      gold_fallback(format,pcVar6);\n    }" { (expression_statement "pcVar6 = this->name_;" (assignment_expression "pcVar6 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;) (expression_statement "format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "format = (char *)gettext("out of patch space in section %s; relink with --incremental-full")" identifier = (cast_expression "(char *)gettext("out of patch space in section %s; relink with --incremental-full")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" identifier (argument_list "("out of patch space in section %s; relink with --incremental-full")" ( (string_literal ""out of patch space in section %s; relink with --incremental-full"" " string_content ") ))))) ;) comment (expression_statement "gold_fallback(format,pcVar6);" (call_expression "gold_fallback(format,pcVar6)" identifier (argument_list "(format,pcVar6)" ( identifier , identifier ))) ;) })) (expression_statement "bVar2 = (this->super_Output_data).field_0x1c;" (assignment_expression "bVar2 = (this->super_Output_data).field_0x1c" identifier = (field_expression "(this->super_Output_data).field_0x1c" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar2 & 1) == 0) {\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }" if (parenthesized_expression "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");\n    }" { (labeled_statement "LAB_000bf521:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4);" (assignment_expression "iVar8 = *(int *)((int)&(this->super_Output_data).address_ + 4)" identifier = (pointer_expression "*(int *)((int)&(this->super_Output_data).address_ + 4)" * (cast_expression "(int *)((int)&(this->super_Output_data).address_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(this->super_Output_data).address_ + 4" (cast_expression "(int)&(this->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data).address_" & (field_expression "(this->super_Output_data).address_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)(this->super_Output_data).address_;" (assignment_expression "uVar9 = (uint)(this->super_Output_data).address_" identifier = (field_expression "(uint)(this->super_Output_data).address_" (call_expression "(uint)(this->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (if_statement "if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }" if (parenthesized_expression "((bVar2 & 4) == 0)" ( (binary_expression "(bVar2 & 4) == 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "local_4c._0_4_ = (uint)oVar11;" (assignment_expression "local_4c._0_4_ = (uint)oVar11" (field_expression "local_4c._0_4_" identifier . field_identifier) = (cast_expression "(uint)oVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20);" (assignment_expression "local_4c._4_4_ = (int)((ulonglong)oVar11 >> 0x20)" (field_expression "local_4c._4_4_" identifier . field_identifier) = (cast_expression "(int)((ulonglong)oVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)oVar11 >> 0x20)" ( (binary_expression "(ulonglong)oVar11 >> 0x20" (cast_expression "(ulonglong)oVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "poVar1 = &(this->super_Output_data).offset_;" (assignment_expression "poVar1 = &(this->super_Output_data).offset_" identifier = (pointer_expression "&(this->super_Output_data).offset_" & (field_expression "(this->super_Output_data).offset_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "oVar11 = *poVar1;" (assignment_expression "oVar11 = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (expression_statement "oVar7 = *poVar1;" (assignment_expression "oVar7 = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (expression_statement "iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4);" (assignment_expression "iVar4 = *(int *)((int)&(this->super_Output_data).offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&(this->super_Output_data).offset_ + 4)" * (cast_expression "(int *)((int)&(this->super_Output_data).offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(this->super_Output_data).offset_ + 4" (cast_expression "(int)&(this->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_data).offset_" & (field_expression "(this->super_Output_data).offset_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "bVar2 = (posd->super_Output_data).field_0x1c;" (assignment_expression "bVar2 = (posd->super_Output_data).field_0x1c" identifier = (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar2 & 1) != 0) {\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }" if (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n    }" { (labeled_statement "LAB_000bf53c:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x142,"set_address");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x142,"set_address");" (call_expression "do_gold_unreachable("../../gold/output.h",0x142,"set_address")" identifier (argument_list "("../../gold/output.h",0x142,"set_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") ))) ;)) })) (expression_statement "*(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c;" (assignment_expression "*(uint *)&(posd->super_Output_data).address_ = uVar9 + (uint)local_4c" (pointer_expression "*(uint *)&(posd->super_Output_data).address_" * (cast_expression "(uint *)&(posd->super_Output_data).address_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_data).address_" & (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "uVar9 + (uint)local_4c" identifier + (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c);" (assignment_expression "*(uint *)((int)&(posd->super_Output_data).address_ + 4) =\n         iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c)" (pointer_expression "*(uint *)((int)&(posd->super_Output_data).address_ + 4)" * (cast_expression "(uint *)((int)&(posd->super_Output_data).address_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).address_ + 4" (cast_expression "(int)&(posd->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).address_" & (field_expression "(posd->super_Output_data).address_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (binary_expression "iVar8 + local_4c._4_4_ + (uint)CARRY4(uVar9,(uint)local_4c)" (binary_expression "iVar8 + local_4c._4_4_" identifier + (field_expression "local_4c._4_4_" identifier . field_identifier)) + (cast_expression "(uint)CARRY4(uVar9,(uint)local_4c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar9,(uint)local_4c)" identifier (argument_list "(uVar9,(uint)local_4c)" ( identifier , (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "(posd->super_Output_data).field_0x1c = bVar2 | 1;" (assignment_expression "(posd->super_Output_data).field_0x1c = bVar2 | 1" (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar2 & 4) != 0) {\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }" if (parenthesized_expression "((bVar2 & 4) != 0)" ( (binary_expression "(bVar2 & 4) != 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000bf557:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n    }" { (labeled_statement "LAB_000bf557:\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 "*(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7;" (assignment_expression "*(uint *)&(posd->super_Output_data).offset_ = (uint)local_4c + (int)oVar7" (pointer_expression "*(uint *)&(posd->super_Output_data).offset_" * (cast_expression "(uint *)&(posd->super_Output_data).offset_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(posd->super_Output_data).offset_" & (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "(uint)local_4c + (int)oVar7" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(int)oVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11);" (assignment_expression "*(uint *)((int)&(posd->super_Output_data).offset_ + 4) =\n         local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11)" (pointer_expression "*(uint *)((int)&(posd->super_Output_data).offset_ + 4)" * (cast_expression "(uint *)((int)&(posd->super_Output_data).offset_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(posd->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(posd->super_Output_data).offset_ + 4" (cast_expression "(int)&(posd->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(posd->super_Output_data).offset_" & (field_expression "(posd->super_Output_data).offset_" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (binary_expression "local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,(uint)oVar11)" (binary_expression "local_4c._4_4_ + iVar4" (field_expression "local_4c._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)local_4c,(uint)oVar11)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_4c,(uint)oVar11)" identifier (argument_list "((uint)local_4c,(uint)oVar11)" ( (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)oVar11" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "(posd->super_Output_data).field_0x1c = bVar2 | 5;" (assignment_expression "(posd->super_Output_data).field_0x1c = bVar2 | 5" (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar2 | 5" identifier | number_literal)) ;) (if_statement "if (((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }" if (parenthesized_expression "(((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0))" ( (binary_expression "((bVar2 & 2) == 0) &&\n       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)" (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0)" ( (comma_expression "(*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),\n       ((posd->super_Output_data).field_0x1c & 2) == 0" (call_expression "(*(posd->super_Output_data)._vptr_Output_data[0xe])(posd)" (parenthesized_expression "(*(posd->super_Output_data)._vptr_Output_data[0xe])" ( (pointer_expression "*(posd->super_Output_data)._vptr_Output_data[0xe]" * (subscript_expression "(posd->super_Output_data)._vptr_Output_data[0xe]" (field_expression "(posd->super_Output_data)._vptr_Output_data" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(posd)" ( identifier ))) , (binary_expression "((posd->super_Output_data).field_0x1c & 2) == 0" (parenthesized_expression "((posd->super_Output_data).field_0x1c & 2)" ( (binary_expression "(posd->super_Output_data).field_0x1c & 2" (field_expression "(posd->super_Output_data).field_0x1c" (parenthesized_expression "(posd->super_Output_data)" ( (field_expression "posd->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n    }" { 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 ") ))) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000bf250(int *param_1,int *param_2)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    \n  FUN_0005f0b0();\n}\n\n" (function_definition "void FUN_000bf250(int *param_1,int *param_2)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    \n  FUN_0005f0b0();\n}" primitive_type (function_declarator "FUN_000bf250(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    \n  FUN_0005f0b0();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "longlong lVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int **ppiVar9;" primitive_type (pointer_declarator "**ppiVar9" * (pointer_declarator "*ppiVar9" * identifier)) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "longlong lVar13;" type_identifier identifier ;) (declaration "int *piStack_5c;" primitive_type (pointer_declarator "*piStack_5c" * identifier) ;) (declaration "undefined4 *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "undefined *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "undefined8 local_4c;" type_identifier identifier ;) (declaration "byte local_3d;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "FUN_0004fb82();" (call_expression "FUN_0004fb82()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar10 = (int *)(unaff_EBP + 0x242daa);" (assignment_expression "piVar10 = (int *)(unaff_EBP + 0x242daa)" identifier = (cast_expression "(int *)(unaff_EBP + 0x242daa)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x242daa)" ( (binary_expression "unaff_EBP + 0x242daa" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = &local_34;" (assignment_expression "puStack_58 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = param_2;" (assignment_expression "local_24 = param_2" identifier = identifier) ;) (expression_statement "piStack_5c = param_1;" (assignment_expression "piStack_5c = param_1" identifier = identifier) ;) (expression_statement "FUN_000bf100();" (call_expression "FUN_000bf100()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 7);" (assignment_expression "bVar1 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\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    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }" { (if_statement "if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x92) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x92) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x92) & 0x20)" ( (binary_expression "*(byte *)((int)param_1 + 0x92) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x92)" * (cast_expression "(byte *)((int)param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x92)" ( (binary_expression "(int)param_1 + 0x92" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" ( (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }" { (expression_statement "iVar4 = param_1[2];" (assignment_expression "iVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (if_statement "if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }" { (expression_statement "param_2[1] = param_1[1];" (assignment_expression "param_2[1] = param_1[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = iVar4;" (assignment_expression "param_2[2] = iVar4" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 1;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }" { (expression_statement "param_2[5] = 0;" (assignment_expression "param_2[5] = 0" (subscript_expression "param_2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[6] = 0;" (assignment_expression "param_2[6] = 0" (subscript_expression "param_2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 5;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 5" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);" statement_identifier : (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x16c7ba)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16c7ba)" ( (binary_expression "unaff_EBP + 0x16c7ba" identifier + number_literal) )))) ;)) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0x14b;" (assignment_expression "puStack_58 = (undefined4 *)0x14b" identifier = (cast_expression "(undefined4 *)0x14b" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);" statement_identifier : (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x16c7ca)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16c7ca)" ( (binary_expression "unaff_EBP + 0x16c7ca" identifier + number_literal) )))) ;)) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0x142;" (assignment_expression "puStack_58 = (undefined4 *)0x142" identifier = (cast_expression "(undefined4 *)0x142" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }" else (compound_statement "{\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }" { (expression_statement "pcVar2 = *(code **)(*param_2 + 0xc);" (assignment_expression "pcVar2 = *(code **)(*param_2 + 0xc)" identifier = (pointer_expression "*(code **)(*param_2 + 0xc)" * (cast_expression "(code **)(*param_2 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xc)" ( (binary_expression "*param_2 + 0xc" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x92) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x92) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x92) & 0x20)" ( (binary_expression "*(byte *)((int)param_1 + 0x92) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x92)" * (cast_expression "(byte *)((int)param_1 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x92)" ( (binary_expression "(int)param_1 + 0x92" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }" { (expression_statement "local_4c._0_4_ = param_1[3];" (assignment_expression "local_4c._0_4_ = param_1[3]" (field_expression "local_4c._0_4_" identifier . field_identifier) = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_4c._4_4_ = param_1[4];" (assignment_expression "local_4c._4_4_ = param_1[4]" (field_expression "local_4c._4_4_" identifier . field_identifier) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (if_statement "if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" if (parenthesized_expression "(pcVar2 == (code *)(unaff_EBP + -0x570d6))" ( (binary_expression "pcVar2 == (code *)(unaff_EBP + -0x570d6)" identifier == (cast_expression "(code *)(unaff_EBP + -0x570d6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x570d6)" ( (binary_expression "unaff_EBP + -0x570d6" identifier + number_literal) )))) )) (compound_statement "{\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }" { (expression_statement "iVar4 = param_2[10];" (assignment_expression "iVar4 = param_2[10]" identifier = (subscript_expression "param_2[10]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_2[9];" (assignment_expression "uVar3 = param_2[9]" identifier = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }" if (parenthesized_expression "(iVar4 != 0 || uVar3 != 0)" ( (binary_expression "iVar4 != 0 || uVar3 != 0" (binary_expression "iVar4 != 0" identifier != number_literal) || (binary_expression "uVar3 != 0" identifier != number_literal)) )) (compound_statement "{\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }" { (expression_statement "bVar11 = (uint)local_4c != 0;" (assignment_expression "bVar11 = (uint)local_4c != 0" identifier = (binary_expression "(uint)local_4c != 0" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal)) ;) (expression_statement "uVar6 = (uint)local_4c - 1;" (assignment_expression "uVar6 = (uint)local_4c - 1" identifier = (binary_expression "(uint)local_4c - 1" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal)) ;) (expression_statement "local_4c._0_4_ = uVar6 + uVar3 & -uVar3;" (assignment_expression "local_4c._0_4_ = uVar6 + uVar3 & -uVar3" (field_expression "local_4c._0_4_" identifier . field_identifier) = (binary_expression "uVar6 + uVar3 & -uVar3" (binary_expression "uVar6 + uVar3" identifier + identifier) & (unary_expression "-uVar3" - identifier))) ;) (expression_statement "local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));" (assignment_expression "local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0))" (field_expression "local_4c._4_4_" identifier . field_identifier) = (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0))" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3)" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11" (parenthesized_expression "(local_4c._4_4_ - 1)" ( (binary_expression "local_4c._4_4_ - 1" (field_expression "local_4c._4_4_" identifier . field_identifier) - number_literal) )) + (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) + identifier) + (cast_expression "(uint)CARRY4(uVar6,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar6,uVar3)" identifier (argument_list "(uVar6,uVar3)" ( identifier , identifier ))))) & (unary_expression "-(iVar4 + (uint)(uVar3 != 0))" - (parenthesized_expression "(iVar4 + (uint)(uVar3 != 0))" ( (binary_expression "iVar4 + (uint)(uVar3 != 0)" identifier + (call_expression "(uint)(uVar3 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )))) ))))) ;) })) }) (else_clause "else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" else (compound_statement "{\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" { (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" identifier = identifier) ;) (expression_statement "lVar13 = (*pcVar2)();" (assignment_expression "lVar13 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }" { (expression_statement "lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);" (assignment_expression "lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" identifier = (binary_expression "lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" identifier + (call_expression "CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" identifier (argument_list "((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" ( (binary_expression "(local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0)" (parenthesized_expression "(local_4c._4_4_ - 1)" ( (binary_expression "local_4c._4_4_ - 1" (field_expression "local_4c._4_4_" identifier . field_identifier) - number_literal) )) + (call_expression "(uint)((uint)local_4c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_4c != 0)" ( (binary_expression "(uint)local_4c != 0" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )))) , (binary_expression "(uint)local_4c - 1" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) ))))) ;) (expression_statement "local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;" (assignment_expression "local_4c._0_4_ = (uint)lVar5 & -(int)lVar13" (field_expression "local_4c._0_4_" identifier . field_identifier) = (binary_expression "(uint)lVar5 & -(int)lVar13" (cast_expression "(uint)lVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar13" - (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);" (assignment_expression "local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20)" (field_expression "local_4c._4_4_" identifier . field_identifier) = (binary_expression "-((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20)" (unary_expression "-((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0))" ( (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)" (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) ))) + (call_expression "(uint)((int)lVar13 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar13 != 0)" ( (binary_expression "(int)lVar13 != 0" (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))) & (call_expression "(uint)((ulonglong)lVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar5 >> 0x20)" ( (binary_expression "(ulonglong)lVar5 >> 0x20" (cast_expression "(ulonglong)lVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "local_3d = *(byte *)(param_2 + 7) >> 1 & 1;" (assignment_expression "local_3d = *(byte *)(param_2 + 7) >> 1 & 1" identifier = (binary_expression "*(byte *)(param_2 + 7) >> 1 & 1" (binary_expression "*(byte *)(param_2 + 7) >> 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if (local_3d == 0) goto LAB_000bf506;" if (parenthesized_expression "(local_3d == 0)" ( (binary_expression "local_3d == 0" identifier == number_literal) )) (goto_statement "goto LAB_000bf506;" goto statement_identifier ;)) }))) (expression_statement "uVar3 = param_2[3];" (assignment_expression "uVar3 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_2[4];" (assignment_expression "iVar4 = param_2[4]" identifier = (subscript_expression "param_2[4]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 2)" ( (binary_expression "*(byte *)(param_1 + 7) & 2" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }" { (expression_statement "param_1[3] = (uint)local_4c + param_2[3];" (assignment_expression "param_1[3] = (uint)local_4c + param_2[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "(uint)local_4c + param_2[3]" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) + (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);" (assignment_expression "param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (binary_expression "local_4c._4_4_ + iVar4" (field_expression "local_4c._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)local_4c,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_4c,uVar3)" identifier (argument_list "((uint)local_4c,uVar3)" ( (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (return_statement "return;" return ;) })) (expression_statement "puStack_54 = &UNK_0016c9aa + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016c9aa + unaff_EBP" identifier = (binary_expression "&UNK_0016c9aa + unaff_EBP" (pointer_expression "&UNK_0016c9aa" & identifier) + identifier)) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0x231;" (assignment_expression "puStack_58 = (undefined4 *)0x231" identifier = (cast_expression "(undefined4 *)0x231" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }" if (parenthesized_expression "(pcVar2 == (code *)(unaff_EBP + -0x570d6))" ( (binary_expression "pcVar2 == (code *)(unaff_EBP + -0x570d6)" identifier == (cast_expression "(code *)(unaff_EBP + -0x570d6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + -0x570d6)" ( (binary_expression "unaff_EBP + -0x570d6" identifier + number_literal) )))) )) (compound_statement "{\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }" { (expression_statement "uVar12 = *(undefined8 *)(param_2 + 9);" (assignment_expression "uVar12 = *(undefined8 *)(param_2 + 9)" identifier = (pointer_expression "*(undefined8 *)(param_2 + 9)" * (cast_expression "(undefined8 *)(param_2 + 9)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 9)" ( (binary_expression "param_2 + 9" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }" else (compound_statement "{\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }" { (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" identifier = identifier) ;) (expression_statement "uVar12 = (*pcVar2)();" (assignment_expression "uVar12 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }" if (parenthesized_expression "((*(byte *)(param_2 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_2 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 2)" ( (binary_expression "*(byte *)(param_2 + 7) & 2" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }" { (labeled_statement "LAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);" statement_identifier : (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16ca72)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x16ca72)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16ca72)" ( (binary_expression "unaff_EBP + 0x16ca72" identifier + number_literal) )))) ;)) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0xcf;" (assignment_expression "puStack_58 = (undefined4 *)0xcf" identifier = (cast_expression "(undefined4 *)0xcf" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);" (assignment_expression "piStack_5c = (int *)((ulonglong)uVar12 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar12 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar12 >> 0x20)" ( (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "ppiVar9 = (int **)&local_4c;" (assignment_expression "ppiVar9 = (int **)&local_4c" identifier = (cast_expression "(int **)&local_4c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_4c" & identifier))) ;) (expression_statement "puStack_54 = (undefined *)0x0;" (assignment_expression "puStack_54 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_58 = (undefined4 *)0x0;" (assignment_expression "puStack_58 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);" (assignment_expression "local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" identifier = (call_expression "FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" identifier (argument_list "(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" ( (binary_expression "param_1 + 0x2d" identifier + number_literal) , (subscript_expression "param_2[3]" identifier [ number_literal ]) , (subscript_expression "param_2[4]" identifier [ number_literal ]) , (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }" if (parenthesized_expression "(local_4c == -1)" ( (binary_expression "local_4c == -1" identifier == number_literal) )) (compound_statement "{\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }" { (expression_statement "iVar4 = param_1[8];" (assignment_expression "iVar4 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x16b78a);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x16b78a)" identifier = (cast_expression "(int *)(unaff_EBP + 0x16b78a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x16b78a)" ( (binary_expression "unaff_EBP + 0x16b78a" identifier + number_literal) )))) ;) (expression_statement "piVar7 = (int *)gettext();" (assignment_expression "piVar7 = (int *)gettext()" identifier = (cast_expression "(int *)gettext()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar10 = piStack_5c;" (assignment_expression "piVar10 = piStack_5c" identifier = identifier) ;) (expression_statement "ppiVar9 = &piStack_5c;" (assignment_expression "ppiVar9 = &piStack_5c" identifier = (pointer_expression "&piStack_5c" & identifier)) ;) (expression_statement "piStack_5c = piVar7;" (assignment_expression "piStack_5c = piVar7" identifier = identifier) ;) (expression_statement "puStack_58 = (undefined4 *)iVar4;" (assignment_expression "puStack_58 = (undefined4 *)iVar4" identifier = (cast_expression "(undefined4 *)iVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0005acd0();" (call_expression "FUN_0005acd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = extraout_EDX_00;" (assignment_expression "uVar8 = extraout_EDX_00" identifier = identifier) ;) (labeled_statement "LAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;" statement_identifier : (expression_statement "*(undefined4 *)((int)ppiVar9 + -4) = uVar8;" (assignment_expression "*(undefined4 *)((int)ppiVar9 + -4) = uVar8" (pointer_expression "*(undefined4 *)((int)ppiVar9 + -4)" * (cast_expression "(undefined4 *)((int)ppiVar9 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar9 + -4)" ( (binary_expression "(int)ppiVar9 + -4" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;" (assignment_expression "*(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981" (pointer_expression "*(int **)((int)ppiVar9 + -8)" * (cast_expression "(int **)((int)ppiVar9 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar9 + -8)" ( (binary_expression "(int)ppiVar9 + -8" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar10 + -0x35981" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;" (assignment_expression "*(undefined4 *)((int)ppiVar9 + -0xc) = 0x163" (pointer_expression "*(undefined4 *)((int)ppiVar9 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar9 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar9 + -0xc)" ( (binary_expression "(int)ppiVar9 + -0xc" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;" (assignment_expression "*(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d" (pointer_expression "*(int **)((int)ppiVar9 + -0x10)" * (cast_expression "(int **)((int)ppiVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar9 + -0x10)" ( (binary_expression "(int)ppiVar9 + -0x10" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "piVar10 + -0x3827d" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;" (assignment_expression "*(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc" (pointer_expression "*(undefined **)((int)ppiVar9 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar9 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar9 + -0x14)" ( (binary_expression "(int)ppiVar9 + -0x14" (cast_expression "(int)ppiVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_000bf5dc" & identifier)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" ( (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }" { (if_statement "if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }" if (parenthesized_expression "((*(byte *)(param_1 + 7) & 4) == 0)" ( (binary_expression "(*(byte *)(param_1 + 7) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 4)" ( (binary_expression "*(byte *)(param_1 + 7) & 4" (pointer_expression "*(byte *)(param_1 + 7)" * (cast_expression "(byte *)(param_1 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }" { (expression_statement "puStack_54 = &UNK_0016c9f6 + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016c9f6 + unaff_EBP" identifier = (binary_expression "&UNK_0016c9f6 + unaff_EBP" (pointer_expression "&UNK_0016c9f6" & identifier) + identifier)) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0xe3;" (assignment_expression "puStack_58 = (undefined4 *)0xe3" identifier = (cast_expression "(undefined4 *)0xe3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar3 = param_1[5];" (assignment_expression "uVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = param_1[6];" (assignment_expression "iVar4 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 7);" (assignment_expression "bVar1 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }" { (expression_statement "*(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);" (assignment_expression "*(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1)" (pointer_expression "*(longlong *)(param_2 + 1)" * (cast_expression "(longlong *)(param_2 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))) = (binary_expression "local_4c + *(longlong *)(param_1 + 1)" identifier + (pointer_expression "*(longlong *)(param_1 + 1)" * (cast_expression "(longlong *)(param_1 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))))) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 1;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 1" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) goto LAB_000bf557;" 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_000bf557;" goto statement_identifier ;)) (expression_statement "param_2[5] = (uint)local_4c + uVar6;" (assignment_expression "param_2[5] = (uint)local_4c + uVar6" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "(uint)local_4c + uVar6" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier)) ;) (expression_statement "param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;" (assignment_expression "param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (subscript_expression "param_2[6]" identifier [ number_literal ]) = (binary_expression "(int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (binary_expression "(int)((ulonglong)local_4c >> 0x20) + iVar4" (cast_expression "(int)((ulonglong)local_4c >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)local_4c >> 0x20)" ( (binary_expression "(ulonglong)local_4c >> 0x20" (cast_expression "(ulonglong)local_4c" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + identifier) + (cast_expression "(uint)CARRY4((uint)local_4c,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_4c,uVar3)" identifier (argument_list "((uint)local_4c,uVar3)" ( (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 5;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 5" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\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          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }" { (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" identifier = identifier) ;) (expression_statement "(**(code **)(*param_2 + 0x38))();" (call_expression "(**(code **)(*param_2 + 0x38))()" (parenthesized_expression "(**(code **)(*param_2 + 0x38))" ( (pointer_expression "**(code **)(*param_2 + 0x38)" * (pointer_expression "*(code **)(*param_2 + 0x38)" * (cast_expression "(code **)(*param_2 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x38)" ( (binary_expression "*param_2 + 0x38" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar8 = extraout_EDX;" (assignment_expression "uVar8 = extraout_EDX" identifier = identifier) ;) (if_statement "if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;" if (parenthesized_expression "((*(byte *)(param_2 + 7) & 2) == 0)" ( (binary_expression "(*(byte *)(param_2 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 2)" ( (binary_expression "*(byte *)(param_2 + 7) & 2" (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000bf5c1;" goto statement_identifier ;)) })) (return_statement "return;" return ;) })) (goto_statement "goto LAB_000bf53c;" goto statement_identifier ;) })) }))) (expression_statement "puStack_54 = &UNK_0016ca2e + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016ca2e + unaff_EBP" identifier = (binary_expression "&UNK_0016ca2e + unaff_EBP" (pointer_expression "&UNK_0016ca2e" & identifier) + identifier)) ;) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" identifier = (cast_expression "(int *)(unaff_EBP + 0x1623b6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1623b6)" ( (binary_expression "unaff_EBP + 0x1623b6" identifier + number_literal) )))) ;) (expression_statement "puStack_58 = (undefined4 *)0xc5;" (assignment_expression "puStack_58 = (undefined4 *)0xc5" identifier = (cast_expression "(undefined4 *)0xc5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (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 (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (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 (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression IDENT + IDENT) & (unary_expression - IDENT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) - LIT) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) & (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 (field_expression IDENT . field_identifier) - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) ))) & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (field_expression IDENT . field_identifier) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , 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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = 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 ;)) })) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_000bf250(int *param_1,int *param_2)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    \n  FUN_0005f0b0();\n}" (primitive_type "void") (function_declarator "FUN_000bf250(int *param_1,int *param_2)" (identifier "FUN_000bf250") (parameter_list "(int *param_1,int *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  uint uVar3;\n  int iVar4;\n  longlong lVar5;\n  uint uVar6;\n  int *piVar7;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 uVar8;\n  int **ppiVar9;\n  int unaff_EBP;\n  int *piVar10;\n  bool bVar11;\n  undefined8 uVar12;\n  longlong lVar13;\n  int *piStack_5c;\n  undefined4 *puStack_58;\n  undefined *puStack_54;\n  undefined8 local_4c;\n  byte local_3d;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  FUN_0004fb82();\n  piVar10 = (int *)(unaff_EBP + 0x242daa);\n  puStack_58 = &local_34;\n  local_34 = 0xffffffff;\n  local_30 = 0;\n  local_20 = 0;\n  local_2c = 0;\n  local_28 = 0;\n  local_24 = param_2;\n  piStack_5c = param_1;\n  FUN_000bf100();\n  bVar1 = *(byte *)(param_2 + 7);\n  if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }\n  puStack_54 = &UNK_0016ca2e + unaff_EBP;\n  piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n  puStack_58 = (undefined4 *)0xc5;\n                    \n  FUN_0005f0b0();\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "longlong lVar5;" (type_identifier "longlong") (identifier "lVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "undefined4 extraout_EDX_00;" (type_identifier "undefined4") (identifier "extraout_EDX_00") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int **ppiVar9;" (primitive_type "int") (pointer_declarator "**ppiVar9" (* "*") (pointer_declarator "*ppiVar9" (* "*") (identifier "ppiVar9"))) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "longlong lVar13;" (type_identifier "longlong") (identifier "lVar13") (; ";")) (declaration "int *piStack_5c;" (primitive_type "int") (pointer_declarator "*piStack_5c" (* "*") (identifier "piStack_5c")) (; ";")) (declaration "undefined4 *puStack_58;" (type_identifier "undefined4") (pointer_declarator "*puStack_58" (* "*") (identifier "puStack_58")) (; ";")) (declaration "undefined *puStack_54;" (type_identifier "undefined") (pointer_declarator "*puStack_54" (* "*") (identifier "puStack_54")) (; ";")) (declaration "undefined8 local_4c;" (type_identifier "undefined8") (identifier "local_4c") (; ";")) (declaration "byte local_3d;" (type_identifier "byte") (identifier "local_3d") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "int *local_24;" (primitive_type "int") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "FUN_0004fb82();" (call_expression "FUN_0004fb82()" (identifier "FUN_0004fb82") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar10 = (int *)(unaff_EBP + 0x242daa);" (assignment_expression "piVar10 = (int *)(unaff_EBP + 0x242daa)" (identifier "piVar10") (= "=") (cast_expression "(int *)(unaff_EBP + 0x242daa)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x242daa)" (( "(") (binary_expression "unaff_EBP + 0x242daa" (identifier "unaff_EBP") (+ "+") (number_literal "0x242daa")) () ")")))) (; ";")) (expression_statement "puStack_58 = &local_34;" (assignment_expression "puStack_58 = &local_34" (identifier "puStack_58") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" (identifier "local_34") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = param_2;" (assignment_expression "local_24 = param_2" (identifier "local_24") (= "=") (identifier "param_2")) (; ";")) (expression_statement "piStack_5c = param_1;" (assignment_expression "piStack_5c = param_1" (identifier "piStack_5c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_000bf100();" (call_expression "FUN_000bf100()" (identifier "FUN_000bf100") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar1 = *(byte *)(param_2 + 7);" (assignment_expression "bVar1 = *(byte *)(param_2 + 7)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }\n  else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\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    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }\n  }" ({ "{") (if_statement "if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x92) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x92) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x92) & 0x20)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x92) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x92)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x92)" (( "(") (binary_expression "(int)param_1 + 0x92" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x92")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar4 = param_1[2];\n      if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }\nLAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x142;\n                    \n      FUN_0005f0b0();\n    }" ({ "{") (expression_statement "iVar4 = param_1[2];" (assignment_expression "iVar4 = param_1[2]" (identifier "iVar4") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((bVar1 & 1) == 0) {\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }" (if "if") (parenthesized_expression "((bVar1 & 1) == 0)" (( "(") (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_2[1] = param_1[1];\n        param_2[2] = iVar4;\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }\nLAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0x14b;\n                    \n        FUN_0005f0b0();\n      }" ({ "{") (expression_statement "param_2[1] = param_1[1];" (assignment_expression "param_2[1] = param_1[1]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_2[2] = iVar4;" (assignment_expression "param_2[2] = iVar4" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 1;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 1" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar1 | 1" (identifier "bVar1") (| "|") (number_literal "1"))) (; ";")) (if_statement "if ((bVar1 & 4) == 0) {\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }" (if "if") (parenthesized_expression "((bVar1 & 4) == 0)" (( "(") (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          param_2[5] = 0;\n          param_2[6] = 0;\n          *(byte *)(param_2 + 7) = bVar1 | 5;\n          return;\n        }" ({ "{") (expression_statement "param_2[5] = 0;" (assignment_expression "param_2[5] = 0" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[6] = 0;" (assignment_expression "param_2[6] = 0" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 5;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 5" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar1 | 5" (identifier "bVar1") (| "|") (number_literal "5"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_000bf557:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);" (statement_identifier "LAB_000bf557") (: ":") (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba)" (identifier "puStack_54") (= "=") (cast_expression "(undefined *)(unaff_EBP + 0x16c7ba)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x16c7ba)" (( "(") (binary_expression "unaff_EBP + 0x16c7ba" (identifier "unaff_EBP") (+ "+") (number_literal "0x16c7ba")) () ")")))) (; ";"))) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1623b6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1623b6)" (( "(") (binary_expression "unaff_EBP + 0x1623b6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1623b6")) () ")")))) (; ";")) (expression_statement "puStack_58 = (undefined4 *)0x14b;" (assignment_expression "puStack_58 = (undefined4 *)0x14b" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)0x14b" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x14b"))) (; ";")) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" (identifier "FUN_0005f0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000bf53c:\n      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);" (statement_identifier "LAB_000bf53c") (: ":") (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca)" (identifier "puStack_54") (= "=") (cast_expression "(undefined *)(unaff_EBP + 0x16c7ca)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x16c7ca)" (( "(") (binary_expression "unaff_EBP + 0x16c7ca" (identifier "unaff_EBP") (+ "+") (number_literal "0x16c7ca")) () ")")))) (; ";"))) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1623b6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1623b6)" (( "(") (binary_expression "unaff_EBP + 0x1623b6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1623b6")) () ")")))) (; ";")) (expression_statement "puStack_58 = (undefined4 *)0x142;" (assignment_expression "puStack_58 = (undefined4 *)0x142" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)0x142" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x142"))) (; ";")) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" (identifier "FUN_0005f0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }" (else "else") (compound_statement "{\n    pcVar2 = *(code **)(*param_2 + 0xc);\n    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }\n    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }\n    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);\n    ppiVar9 = (int **)&local_4c;\n    puStack_54 = (undefined *)0x0;\n    puStack_58 = (undefined4 *)0x0;\n    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);\n    if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }\n    if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }\n  }" ({ "{") (expression_statement "pcVar2 = *(code **)(*param_2 + 0xc);" (assignment_expression "pcVar2 = *(code **)(*param_2 + 0xc)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(*param_2 + 0xc)" (* "*") (cast_expression "(code **)(*param_2 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xc)" (( "(") (binary_expression "*param_2 + 0xc" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x92) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x92) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x92) & 0x20)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x92) & 0x20" (pointer_expression "*(byte *)((int)param_1 + 0x92)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x92)" (( "(") (binary_expression "(int)param_1 + 0x92" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x92")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_4c._0_4_ = param_1[3];\n      local_4c._4_4_ = param_1[4];\n      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }\n      uVar3 = param_2[3];\n      iVar4 = param_2[4];\n      if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }\n      puStack_54 = &UNK_0016c9aa + unaff_EBP;\n      piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n      puStack_58 = (undefined4 *)0x231;\n                    \n      FUN_0005f0b0();\n    }" ({ "{") (expression_statement "local_4c._0_4_ = param_1[3];" (assignment_expression "local_4c._0_4_ = param_1[3]" (field_expression "local_4c._0_4_" (identifier "local_4c") (. ".") (field_identifier "_0_4_")) (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_4c._4_4_ = param_1[4];" (assignment_expression "local_4c._4_4_ = param_1[4]" (field_expression "local_4c._4_4_" (identifier "local_4c") (. ".") (field_identifier "_4_4_")) (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }\n      else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" (if "if") (parenthesized_expression "(pcVar2 == (code *)(unaff_EBP + -0x570d6))" (( "(") (binary_expression "pcVar2 == (code *)(unaff_EBP + -0x570d6)" (identifier "pcVar2") (== "==") (cast_expression "(code *)(unaff_EBP + -0x570d6)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x570d6)" (( "(") (binary_expression "unaff_EBP + -0x570d6" (identifier "unaff_EBP") (+ "+") (number_literal "-0x570d6")) () ")")))) () ")")) (compound_statement "{\n        iVar4 = param_2[10];\n        uVar3 = param_2[9];\n        if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }\n      }" ({ "{") (expression_statement "iVar4 = param_2[10];" (assignment_expression "iVar4 = param_2[10]" (identifier "iVar4") (= "=") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar3 = param_2[9];" (assignment_expression "uVar3 = param_2[9]" (identifier "uVar3") (= "=") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (; ";")) (if_statement "if (iVar4 != 0 || uVar3 != 0) {\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }" (if "if") (parenthesized_expression "(iVar4 != 0 || uVar3 != 0)" (( "(") (binary_expression "iVar4 != 0 || uVar3 != 0" (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          bVar11 = (uint)local_4c != 0;\n          uVar6 = (uint)local_4c - 1;\n          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;\n          local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));\n        }" ({ "{") (expression_statement "bVar11 = (uint)local_4c != 0;" (assignment_expression "bVar11 = (uint)local_4c != 0" (identifier "bVar11") (= "=") (binary_expression "(uint)local_4c != 0" (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "uVar6 = (uint)local_4c - 1;" (assignment_expression "uVar6 = (uint)local_4c - 1" (identifier "uVar6") (= "=") (binary_expression "(uint)local_4c - 1" (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_4c._0_4_ = uVar6 + uVar3 & -uVar3;" (assignment_expression "local_4c._0_4_ = uVar6 + uVar3 & -uVar3" (field_expression "local_4c._0_4_" (identifier "local_4c") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "uVar6 + uVar3 & -uVar3" (binary_expression "uVar6 + uVar3" (identifier "uVar6") (+ "+") (identifier "uVar3")) (& "&") (unary_expression "-uVar3" (- "-") (identifier "uVar3")))) (; ";")) (expression_statement "local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0));" (assignment_expression "local_4c._4_4_ =\n               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0))" (field_expression "local_4c._4_4_" (identifier "local_4c") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &\n               -(iVar4 + (uint)(uVar3 != 0))" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3)" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11 + iVar4" (binary_expression "(local_4c._4_4_ - 1) + (uint)bVar11" (parenthesized_expression "(local_4c._4_4_ - 1)" (( "(") (binary_expression "local_4c._4_4_ - 1" (field_expression "local_4c._4_4_" (identifier "local_4c") (. ".") (field_identifier "_4_4_")) (- "-") (number_literal "1")) () ")")) (+ "+") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11"))) (+ "+") (identifier "iVar4")) (+ "+") (cast_expression "(uint)CARRY4(uVar6,uVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar6,uVar3)" (identifier "CARRY4") (argument_list "(uVar6,uVar3)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar3") () ")"))))) (& "&") (unary_expression "-(iVar4 + (uint)(uVar3 != 0))" (- "-") (parenthesized_expression "(iVar4 + (uint)(uVar3 != 0))" (( "(") (binary_expression "iVar4 + (uint)(uVar3 != 0)" (identifier "iVar4") (+ "+") (call_expression "(uint)(uVar3 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")))) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" (else "else") (compound_statement "{\n        piStack_5c = param_2;\n        lVar13 = (*pcVar2)();\n        if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }\n        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;\n        if (local_3d == 0) goto LAB_000bf506;\n      }" ({ "{") (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" (identifier "piStack_5c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "lVar13 = (*pcVar2)();" (assignment_expression "lVar13 = (*pcVar2)()" (identifier "lVar13") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar13 != 0) {\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }" (if "if") (parenthesized_expression "(lVar13 != 0)" (( "(") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);\n          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;\n          local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);\n        }" ({ "{") (expression_statement "lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1);" (assignment_expression "lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" (identifier "lVar5") (= "=") (binary_expression "lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" (identifier "lVar13") (+ "+") (call_expression "CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" (identifier "CONCAT44") (argument_list "((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),\n                                    (uint)local_4c - 1)" (( "(") (binary_expression "(local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0)" (parenthesized_expression "(local_4c._4_4_ - 1)" (( "(") (binary_expression "local_4c._4_4_ - 1" (field_expression "local_4c._4_4_" (identifier "local_4c") (. ".") (field_identifier "_4_4_")) (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)((uint)local_4c != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)local_4c != 0)" (( "(") (binary_expression "(uint)local_4c != 0" (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (!= "!=") (number_literal "0")) () ")")))) (, ",") (binary_expression "(uint)local_4c - 1" (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (- "-") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;" (assignment_expression "local_4c._0_4_ = (uint)lVar5 & -(int)lVar13" (field_expression "local_4c._0_4_" (identifier "local_4c") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(uint)lVar5 & -(int)lVar13" (cast_expression "(uint)lVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar5")) (& "&") (unary_expression "-(int)lVar13" (- "-") (cast_expression "(int)lVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar13"))))) (; ";")) (expression_statement "local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20);" (assignment_expression "local_4c._4_4_ =\n               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20)" (field_expression "local_4c._4_4_" (identifier "local_4c") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "-((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &\n               (uint)((ulonglong)lVar5 >> 0x20)" (unary_expression "-((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0))" (- "-") (parenthesized_expression "((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0))" (( "(") (binary_expression "(int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)" (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")) () ")"))) (+ "+") (call_expression "(uint)((int)lVar13 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)lVar13 != 0)" (( "(") (binary_expression "(int)lVar13 != 0" (cast_expression "(int)lVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar13")) (!= "!=") (number_literal "0")) () ")")))) () ")"))) (& "&") (call_expression "(uint)((ulonglong)lVar5 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar5 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar5 >> 0x20" (cast_expression "(ulonglong)lVar5" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar5")) (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_3d = *(byte *)(param_2 + 7) >> 1 & 1;" (assignment_expression "local_3d = *(byte *)(param_2 + 7) >> 1 & 1" (identifier "local_3d") (= "=") (binary_expression "*(byte *)(param_2 + 7) >> 1 & 1" (binary_expression "*(byte *)(param_2 + 7) >> 1" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (local_3d == 0) goto LAB_000bf506;" (if "if") (parenthesized_expression "(local_3d == 0)" (( "(") (binary_expression "local_3d == 0" (identifier "local_3d") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000bf506;" (goto "goto") (statement_identifier "LAB_000bf506") (; ";"))) (} "}")))) (expression_statement "uVar3 = param_2[3];" (assignment_expression "uVar3 = param_2[3]" (identifier "uVar3") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar4 = param_2[4];" (assignment_expression "iVar4 = param_2[4]" (identifier "iVar4") (= "=") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 7) & 2) == 0) {\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 2" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[3] = (uint)local_4c + param_2[3];\n        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);\n        return;\n      }" ({ "{") (expression_statement "param_1[3] = (uint)local_4c + param_2[3];" (assignment_expression "param_1[3] = (uint)local_4c + param_2[3]" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(uint)local_4c + param_2[3]" (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (+ "+") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);" (assignment_expression "param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (binary_expression "local_4c._4_4_ + iVar4" (field_expression "local_4c._4_4_" (identifier "local_4c") (. ".") (field_identifier "_4_4_")) (+ "+") (identifier "iVar4")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_4c,uVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_4c,uVar3)" (identifier "CARRY4") (argument_list "((uint)local_4c,uVar3)" (( "(") (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (, ",") (identifier "uVar3") () ")")))))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puStack_54 = &UNK_0016c9aa + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016c9aa + unaff_EBP" (identifier "puStack_54") (= "=") (binary_expression "&UNK_0016c9aa + unaff_EBP" (pointer_expression "&UNK_0016c9aa" (& "&") (identifier "UNK_0016c9aa")) (+ "+") (identifier "unaff_EBP"))) (; ";")) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1623b6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1623b6)" (( "(") (binary_expression "unaff_EBP + 0x1623b6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1623b6")) () ")")))) (; ";")) (expression_statement "puStack_58 = (undefined4 *)0x231;" (assignment_expression "puStack_58 = (undefined4 *)0x231" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)0x231" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x231"))) (; ";")) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" (identifier "FUN_0005f0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }\n    else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }" (if "if") (parenthesized_expression "(pcVar2 == (code *)(unaff_EBP + -0x570d6))" (( "(") (binary_expression "pcVar2 == (code *)(unaff_EBP + -0x570d6)" (identifier "pcVar2") (== "==") (cast_expression "(code *)(unaff_EBP + -0x570d6)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + -0x570d6)" (( "(") (binary_expression "unaff_EBP + -0x570d6" (identifier "unaff_EBP") (+ "+") (number_literal "-0x570d6")) () ")")))) () ")")) (compound_statement "{\n      uVar12 = *(undefined8 *)(param_2 + 9);\n    }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)(param_2 + 9);" (assignment_expression "uVar12 = *(undefined8 *)(param_2 + 9)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(param_2 + 9)" (* "*") (cast_expression "(undefined8 *)(param_2 + 9)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 9)" (( "(") (binary_expression "param_2 + 9" (identifier "param_2") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }" (else "else") (compound_statement "{\n      piStack_5c = param_2;\n      uVar12 = (*pcVar2)();\n      if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }\n    }" ({ "{") (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" (identifier "piStack_5c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar12 = (*pcVar2)();" (assignment_expression "uVar12 = (*pcVar2)()" (identifier "uVar12") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 7) & 2) == 0) {\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 2)" (( "(") (binary_expression "*(byte *)(param_2 + 7) & 2" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xcf;\n                    \n        FUN_0005f0b0();\n      }" ({ "{") (labeled_statement "LAB_000bf506:\n        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);" (statement_identifier "LAB_000bf506") (: ":") (expression_statement "puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);" (assignment_expression "puStack_54 = (undefined *)(unaff_EBP + 0x16ca72)" (identifier "puStack_54") (= "=") (cast_expression "(undefined *)(unaff_EBP + 0x16ca72)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x16ca72)" (( "(") (binary_expression "unaff_EBP + 0x16ca72" (identifier "unaff_EBP") (+ "+") (number_literal "0x16ca72")) () ")")))) (; ";"))) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1623b6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1623b6)" (( "(") (binary_expression "unaff_EBP + 0x1623b6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1623b6")) () ")")))) (; ";")) (expression_statement "puStack_58 = (undefined4 *)0xcf;" (assignment_expression "puStack_58 = (undefined4 *)0xcf" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)0xcf" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcf"))) (; ";")) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" (identifier "FUN_0005f0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);" (assignment_expression "piStack_5c = (int *)((ulonglong)uVar12 >> 0x20)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)((ulonglong)uVar12 >> 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar12 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar12 >> 0x20" (cast_expression "(ulonglong)uVar12" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "ppiVar9 = (int **)&local_4c;" (assignment_expression "ppiVar9 = (int **)&local_4c" (identifier "ppiVar9") (= "=") (cast_expression "(int **)&local_4c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")))) (; ";")) (expression_statement "puStack_54 = (undefined *)0x0;" (assignment_expression "puStack_54 = (undefined *)0x0" (identifier "puStack_54") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puStack_58 = (undefined4 *)0x0;" (assignment_expression "puStack_58 = (undefined4 *)0x0" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);" (assignment_expression "local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" (identifier "local_4c") (= "=") (call_expression "FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" (identifier "FUN_0007ac00") (argument_list "(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12)" (( "(") (binary_expression "param_1 + 0x2d" (identifier "param_1") (+ "+") (number_literal "0x2d")) (, ",") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (, ",") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (, ",") (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) () ")")))) (; ";")) (if_statement "if (local_4c == -1) {\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }" (if "if") (parenthesized_expression "(local_4c == -1)" (( "(") (binary_expression "local_4c == -1" (identifier "local_4c") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar4 = param_1[8];\n      piStack_5c = (int *)(unaff_EBP + 0x16b78a);\n      piVar7 = (int *)gettext();\n      piVar10 = piStack_5c;\n      ppiVar9 = &piStack_5c;\n      piStack_5c = piVar7;\n      puStack_58 = (undefined4 *)iVar4;\n      FUN_0005acd0();\n      uVar8 = extraout_EDX_00;\nLAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;\n      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;\n      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;\n      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;\n                    \n      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;\n      FUN_0005f0b0();\n    }" ({ "{") (expression_statement "iVar4 = param_1[8];" (assignment_expression "iVar4 = param_1[8]" (identifier "iVar4") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x16b78a);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x16b78a)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(unaff_EBP + 0x16b78a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x16b78a)" (( "(") (binary_expression "unaff_EBP + 0x16b78a" (identifier "unaff_EBP") (+ "+") (number_literal "0x16b78a")) () ")")))) (; ";")) (expression_statement "piVar7 = (int *)gettext();" (assignment_expression "piVar7 = (int *)gettext()" (identifier "piVar7") (= "=") (cast_expression "(int *)gettext()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar10 = piStack_5c;" (assignment_expression "piVar10 = piStack_5c" (identifier "piVar10") (= "=") (identifier "piStack_5c")) (; ";")) (expression_statement "ppiVar9 = &piStack_5c;" (assignment_expression "ppiVar9 = &piStack_5c" (identifier "ppiVar9") (= "=") (pointer_expression "&piStack_5c" (& "&") (identifier "piStack_5c"))) (; ";")) (expression_statement "piStack_5c = piVar7;" (assignment_expression "piStack_5c = piVar7" (identifier "piStack_5c") (= "=") (identifier "piVar7")) (; ";")) (expression_statement "puStack_58 = (undefined4 *)iVar4;" (assignment_expression "puStack_58 = (undefined4 *)iVar4" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)iVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar4"))) (; ";")) (expression_statement "FUN_0005acd0();" (call_expression "FUN_0005acd0()" (identifier "FUN_0005acd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = extraout_EDX_00;" (assignment_expression "uVar8 = extraout_EDX_00" (identifier "uVar8") (= "=") (identifier "extraout_EDX_00")) (; ";")) (labeled_statement "LAB_000bf5c1:\n      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;" (statement_identifier "LAB_000bf5c1") (: ":") (expression_statement "*(undefined4 *)((int)ppiVar9 + -4) = uVar8;" (assignment_expression "*(undefined4 *)((int)ppiVar9 + -4) = uVar8" (pointer_expression "*(undefined4 *)((int)ppiVar9 + -4)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar9 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar9 + -4)" (( "(") (binary_expression "(int)ppiVar9 + -4" (cast_expression "(int)ppiVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar9")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar8")) (; ";"))) (expression_statement "*(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;" (assignment_expression "*(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981" (pointer_expression "*(int **)((int)ppiVar9 + -8)" (* "*") (cast_expression "(int **)((int)ppiVar9 + -8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar9 + -8)" (( "(") (binary_expression "(int)ppiVar9 + -8" (cast_expression "(int)ppiVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar9")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "piVar10 + -0x35981" (identifier "piVar10") (+ "+") (number_literal "-0x35981"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;" (assignment_expression "*(undefined4 *)((int)ppiVar9 + -0xc) = 0x163" (pointer_expression "*(undefined4 *)((int)ppiVar9 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar9 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar9 + -0xc)" (( "(") (binary_expression "(int)ppiVar9 + -0xc" (cast_expression "(int)ppiVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar9")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x163")) (; ";")) (expression_statement "*(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;" (assignment_expression "*(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d" (pointer_expression "*(int **)((int)ppiVar9 + -0x10)" (* "*") (cast_expression "(int **)((int)ppiVar9 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar9 + -0x10)" (( "(") (binary_expression "(int)ppiVar9 + -0x10" (cast_expression "(int)ppiVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar9")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "piVar10 + -0x3827d" (identifier "piVar10") (+ "+") (number_literal "-0x3827d"))) (; ";")) (expression_statement "*(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;" (assignment_expression "*(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc" (pointer_expression "*(undefined **)((int)ppiVar9 + -0x14)" (* "*") (cast_expression "(undefined **)((int)ppiVar9 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar9 + -0x14)" (( "(") (binary_expression "(int)ppiVar9 + -0x14" (cast_expression "(int)ppiVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar9")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_000bf5dc" (& "&") (identifier "UNK_000bf5dc"))) (; ";")) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" (identifier "FUN_0005f0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_1 + 7) & 1) != 0) {\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 1)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 1" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }\n      uVar3 = param_1[5];\n      uVar6 = param_1[5];\n      iVar4 = param_1[6];\n      bVar1 = *(byte *)(param_2 + 7);\n      if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }\n      goto LAB_000bf53c;\n    }" ({ "{") (if_statement "if ((*(byte *)(param_1 + 7) & 4) == 0) {\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 7) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 7) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 7) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 7) & 4" (pointer_expression "*(byte *)(param_1 + 7)" (* "*") (cast_expression "(byte *)(param_1 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puStack_54 = &UNK_0016c9f6 + unaff_EBP;\n        piStack_5c = (int *)(unaff_EBP + 0x1623b6);\n        puStack_58 = (undefined4 *)0xe3;\n                    \n        FUN_0005f0b0();\n      }" ({ "{") (expression_statement "puStack_54 = &UNK_0016c9f6 + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016c9f6 + unaff_EBP" (identifier "puStack_54") (= "=") (binary_expression "&UNK_0016c9f6 + unaff_EBP" (pointer_expression "&UNK_0016c9f6" (& "&") (identifier "UNK_0016c9f6")) (+ "+") (identifier "unaff_EBP"))) (; ";")) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1623b6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1623b6)" (( "(") (binary_expression "unaff_EBP + 0x1623b6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1623b6")) () ")")))) (; ";")) (expression_statement "puStack_58 = (undefined4 *)0xe3;" (assignment_expression "puStack_58 = (undefined4 *)0xe3" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)0xe3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xe3"))) (; ";")) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" (identifier "FUN_0005f0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = param_1[5];" (assignment_expression "uVar3 = param_1[5]" (identifier "uVar3") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" (identifier "uVar6") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar4 = param_1[6];" (assignment_expression "iVar4 = param_1[6]" (identifier "iVar4") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "bVar1 = *(byte *)(param_2 + 7);" (assignment_expression "bVar1 = *(byte *)(param_2 + 7)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 1) == 0) {\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }" (if "if") (parenthesized_expression "((bVar1 & 1) == 0)" (( "(") (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);\n        *(byte *)(param_2 + 7) = bVar1 | 1;\n        if ((bVar1 & 4) != 0) goto LAB_000bf557;\n        param_2[5] = (uint)local_4c + uVar6;\n        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;\n        *(byte *)(param_2 + 7) = bVar1 | 5;\n        if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }\n        return;\n      }" ({ "{") (expression_statement "*(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);" (assignment_expression "*(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1)" (pointer_expression "*(longlong *)(param_2 + 1)" (* "*") (cast_expression "(longlong *)(param_2 + 1)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))) (= "=") (binary_expression "local_4c + *(longlong *)(param_1 + 1)" (identifier "local_4c") (+ "+") (pointer_expression "*(longlong *)(param_1 + 1)" (* "*") (cast_expression "(longlong *)(param_1 + 1)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 1;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 1" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar1 | 1" (identifier "bVar1") (| "|") (number_literal "1"))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) goto LAB_000bf557;" (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_000bf557;" (goto "goto") (statement_identifier "LAB_000bf557") (; ";"))) (expression_statement "param_2[5] = (uint)local_4c + uVar6;" (assignment_expression "param_2[5] = (uint)local_4c + uVar6" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "(uint)local_4c + uVar6" (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (+ "+") (identifier "uVar6"))) (; ";")) (expression_statement "param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)\n        ;" (assignment_expression "param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "(int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)" (binary_expression "(int)((ulonglong)local_4c >> 0x20) + iVar4" (cast_expression "(int)((ulonglong)local_4c >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)local_4c >> 0x20)" (( "(") (binary_expression "(ulonglong)local_4c >> 0x20" (cast_expression "(ulonglong)local_4c" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_4c")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (identifier "iVar4")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_4c,uVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_4c,uVar3)" (identifier "CARRY4") (argument_list "((uint)local_4c,uVar3)" (( "(") (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (, ",") (identifier "uVar3") () ")")))))) (; ";")) (expression_statement "*(byte *)(param_2 + 7) = bVar1 | 5;" (assignment_expression "*(byte *)(param_2 + 7) = bVar1 | 5" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar1 | 5" (identifier "bVar1") (| "|") (number_literal "5"))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\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          piStack_5c = param_2;\n          (**(code **)(*param_2 + 0x38))();\n          uVar8 = extraout_EDX;\n          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;\n        }" ({ "{") (expression_statement "piStack_5c = param_2;" (assignment_expression "piStack_5c = param_2" (identifier "piStack_5c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(**(code **)(*param_2 + 0x38))();" (call_expression "(**(code **)(*param_2 + 0x38))()" (parenthesized_expression "(**(code **)(*param_2 + 0x38))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x38)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x38)" (* "*") (cast_expression "(code **)(*param_2 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x38)" (( "(") (binary_expression "*param_2 + 0x38" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar8 = extraout_EDX;" (assignment_expression "uVar8 = extraout_EDX" (identifier "uVar8") (= "=") (identifier "extraout_EDX")) (; ";")) (if_statement "if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 7) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 7) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 7) & 2)" (( "(") (binary_expression "*(byte *)(param_2 + 7) & 2" (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000bf5c1;" (goto "goto") (statement_identifier "LAB_000bf5c1") (; ";"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_000bf53c;" (goto "goto") (statement_identifier "LAB_000bf53c") (; ";")) (} "}"))) (} "}")))) (expression_statement "puStack_54 = &UNK_0016ca2e + unaff_EBP;" (assignment_expression "puStack_54 = &UNK_0016ca2e + unaff_EBP" (identifier "puStack_54") (= "=") (binary_expression "&UNK_0016ca2e + unaff_EBP" (pointer_expression "&UNK_0016ca2e" (& "&") (identifier "UNK_0016ca2e")) (+ "+") (identifier "unaff_EBP"))) (; ";")) (expression_statement "piStack_5c = (int *)(unaff_EBP + 0x1623b6);" (assignment_expression "piStack_5c = (int *)(unaff_EBP + 0x1623b6)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(unaff_EBP + 0x1623b6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1623b6)" (( "(") (binary_expression "unaff_EBP + 0x1623b6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1623b6")) () ")")))) (; ";")) (expression_statement "puStack_58 = (undefined4 *)0xc5;" (assignment_expression "puStack_58 = (undefined4 *)0xc5" (identifier "puStack_58") (= "=") (cast_expression "(undefined4 *)0xc5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc5"))) (; ";")) (expression_statement "FUN_0005f0b0();" (call_expression "FUN_0005f0b0()" (identifier "FUN_0005f0b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* DWARF original prototype: void add_output_section_data(Output_section * this, Output_section_data
   * posd) */

void __thiscall
gold::type_1::function_1(type_1 *this,type_2 *posd)

{
  type_3 *poVar1;
  type_4 var_1;
  type_5 *var_2;
  int var_6;
  int var_3;
  char *pcVar6;
  type_3 oVar7;
  int var_7;
  type_6 var_4;
  char *format;
  type_7 uVar10;
  type_7 extraout_EDX;
  int var_9;
  type_3 var_13;
  type_8 local_4c;
  type_4 var_10;
  type_9 inp;
  
  inp.shndx_ = 0xffffffff;
  inp.p2align_ = 0;
  inp.section_order_index_ = 0;
  inp.u1_.data_size._0_4_ = 0;
  inp.u1_.data_size._4_4_ = 0;
  inp.u2_.posd = posd;
  function_1(this,&inp);
  var_1 = (posd->super_Output_data).field_0x1c;
  if ((var_1 & 2) == 0) {
    if ((this->field_0x92 & 0x20) != 0) {
      if (((this->super_Output_data).field_0x1c & 1) != 0) {
        uVar10 = *(type_7 *)((int)&(this->super_Output_data).address_ + 4);
        if ((var_1 & 1) == 0) {
          *(int *)&(posd->super_Output_data).address_ = (int)(this->super_Output_data).address_;
          *(type_7 *)((int)&(posd->super_Output_data).address_ + 4) = uVar10;
          (posd->super_Output_data).field_0x1c = var_1 | 1;
          if ((var_1 & 4) == 0) {
            *(type_7 *)&(posd->super_Output_data).offset_ = 0;
            *(type_7 *)((int)&(posd->super_Output_data).offset_ + 4) = 0;
            (posd->super_Output_data).field_0x1c = var_1 | 5;
            return;
          }
          goto LAB_000bf557;
        }
        goto LAB_000bf53c;
      }
      goto LAB_000bf521;
    }
  }
  else {
    var_2 = (posd->super_Output_data)._vptr_Output_data[3];
    if ((this->field_0x92 & 0x20) == 0) {
      poVar1 = &(this->super_Output_data).data_size_;
      var_7 = (int)*poVar1;
      var_6 = *(int *)((int)&(this->super_Output_data).data_size_ + 4);
      local_4c = *poVar1;
      if (var_2 == type_2::do_addralign) {
        var_3 = *(int *)((int)&posd->addralign_ + 4);
        var_4 = (type_6)posd->addralign_;
        if (var_3 != 0 || var_4 != 0) {
          local_4c = var_5(var_6 + -1 + (type_6)(var_7 != 0) + var_3 +
                              (type_6)var_8(var_7 - 1U,var_4) & -(var_3 + (type_6)(var_4 != 0)),
                              (var_7 - 1U) + var_4 & -var_4);
        }
      }
      else {
        var_4 = (*var_2)(posd);
        if (var_9 != 0 || var_4 != 0) {
          local_4c = var_5(-(var_9 + (type_6)(var_4 != 0)) &
                              var_6 + -1 + (type_6)(var_7 != 0) + var_9 +
                              (type_6)var_8(var_7 - 1U,var_4),(var_7 - 1U) + var_4 & -var_4);
        }
        var_10 = (type_4)(posd->super_Output_data).field_0x1c >> 1 & 1;
        if (var_10 == 0) goto LAB_000bf506;
      }
      poVar1 = &(posd->super_Output_data).data_size_;
      var_13 = *poVar1;
      var_7 = *(int *)((int)&(posd->super_Output_data).data_size_ + 4);
      if (((this->super_Output_data).field_0x1c & 2) != 0) {
                    /* WARNING: Subroutine does not return */
        var_11("../../gold/output.h",0x231,"set_current_data_size_for_child");
      }
      *(type_6 *)&(this->super_Output_data).data_size_ = (type_6)local_4c + (int)*poVar1;
      *(type_6 *)((int)&(this->super_Output_data).data_size_ + 4) =
           local_4c._4_4_ + var_7 + (type_6)var_8((type_6)local_4c,(type_6)var_13);
      return;
    }
    if (var_2 == type_2::do_addralign) {
      var_7 = (int)posd->addralign_;
      uVar10 = *(type_7 *)((int)&posd->addralign_ + 4);
    }
    else {
      var_7 = (*var_2)(posd);
      uVar10 = extraout_EDX;
      if (((posd->super_Output_data).field_0x1c & 2) == 0) {
LAB_000bf506:
                    /* WARNING: Subroutine does not return */
        var_11("../../gold/output.h",0xcf,"data_size");
      }
    }
    var_13 = Free_list::var_12(&this->free_list_,(posd->super_Output_data).data_size_,
                                 var_5(uVar10,var_7),0);
    if (var_13 == -1) {
      pcVar6 = this->name_;
      format = (char *)var_14("out of patch space in section %s; relink with --incremental-full");
                    /* WARNING: Subroutine does not return */
      var_15(format,pcVar6);
    }
    var_1 = (this->super_Output_data).field_0x1c;
    if ((var_1 & 1) == 0) {
LAB_000bf521:
                    /* WARNING: Subroutine does not return */
      var_11("../../gold/output.h",0xc5,"address");
    }
    var_7 = *(int *)((int)&(this->super_Output_data).address_ + 4);
    var_4 = (type_6)(this->super_Output_data).address_;
    if ((var_1 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
      var_11("../../gold/output.h",0xe3,"offset");
    }
    local_4c._0_4_ = (type_6)var_13;
    local_4c._4_4_ = (int)((type_10)var_13 >> 0x20);
    poVar1 = &(this->super_Output_data).offset_;
    var_13 = *poVar1;
    oVar7 = *poVar1;
    var_6 = *(int *)((int)&(this->super_Output_data).offset_ + 4);
    var_1 = (posd->super_Output_data).field_0x1c;
    if ((var_1 & 1) != 0) {
LAB_000bf53c:
                    /* WARNING: Subroutine does not return */
      var_11("../../gold/output.h",0x142,"set_address");
    }
    *(type_6 *)&(posd->super_Output_data).address_ = var_4 + (type_6)local_4c;
    *(type_6 *)((int)&(posd->super_Output_data).address_ + 4) =
         var_7 + local_4c._4_4_ + (type_6)var_8(var_4,(type_6)local_4c);
    (posd->super_Output_data).field_0x1c = var_1 | 1;
    if ((var_1 & 4) != 0) {
LAB_000bf557:
                    /* WARNING: Subroutine does not return */
      var_11("../../gold/output.h",0x14b,"set_file_offset");
    }
    *(type_6 *)&(posd->super_Output_data).offset_ = (type_6)local_4c + (int)oVar7;
    *(type_6 *)((int)&(posd->super_Output_data).offset_ + 4) =
         local_4c._4_4_ + var_6 + (type_6)var_8((type_6)local_4c,(type_6)var_13);
    (posd->super_Output_data).field_0x1c = var_1 | 5;
    if (((var_1 & 2) == 0) &&
       ((*(posd->super_Output_data)._vptr_Output_data[0xe])(posd),
       ((posd->super_Output_data).field_0x1c & 2) == 0)) {
                    /* WARNING: Subroutine does not return */
      var_11("../../gold/output.h",0x163,"finalize_data_size");
    }
  }
  return;
}


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

void MASKED(int *param_1,int *param_2)

{
  byte bVar1;
  code *pcVar2;
  uint uVar3;
  int iVar4;
  longlong lVar5;
  uint uVar6;
  int *piVar7;
  undefined4 extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined4 uVar8;
  int **ppiVar9;
  int unaff_EBP;
  int *piVar10;
  bool bVar11;
  undefined8 uVar12;
  longlong lVar13;
  int *piStack_5c;
  undefined4 *puStack_58;
  undefined *puStack_54;
  undefined8 local_4c;
  byte local_3d;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  int *local_24;
  undefined4 local_20;
  
  FUN_0004fb82();
  piVar10 = (int *)(unaff_EBP + 0x242daa);
  puStack_58 = &local_34;
  local_34 = 0xffffffff;
  local_30 = 0;
  local_20 = 0;
  local_2c = 0;
  local_28 = 0;
  local_24 = param_2;
  piStack_5c = param_1;
  FUN_000bf100();
  bVar1 = *(byte *)(param_2 + 7);
  if ((bVar1 & 2) == 0) {
    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {
      return;
    }
    if ((*(byte *)(param_1 + 7) & 1) != 0) {
      iVar4 = param_1[2];
      if ((bVar1 & 1) == 0) {
        param_2[1] = param_1[1];
        param_2[2] = iVar4;
        *(byte *)(param_2 + 7) = bVar1 | 1;
        if ((bVar1 & 4) == 0) {
          param_2[5] = 0;
          param_2[6] = 0;
          *(byte *)(param_2 + 7) = bVar1 | 5;
          return;
        }
LAB_000bf557:
        puStack_54 = (undefined *)(unaff_EBP + 0x16c7ba);
        piStack_5c = (int *)(unaff_EBP + 0x1623b6);
        puStack_58 = (undefined4 *)0x14b;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0();
      }
LAB_000bf53c:
      puStack_54 = (undefined *)(unaff_EBP + 0x16c7ca);
      piStack_5c = (int *)(unaff_EBP + 0x1623b6);
      puStack_58 = (undefined4 *)0x142;
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0();
    }
  }
  else {
    pcVar2 = *(code **)(*param_2 + 0xc);
    if ((*(byte *)((int)param_1 + 0x92) & 0x20) == 0) {
      local_4c._0_4_ = param_1[3];
      local_4c._4_4_ = param_1[4];
      if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {
        iVar4 = param_2[10];
        uVar3 = param_2[9];
        if (iVar4 != 0 || uVar3 != 0) {
          bVar11 = (uint)local_4c != 0;
          uVar6 = (uint)local_4c - 1;
          local_4c._0_4_ = uVar6 + uVar3 & -uVar3;
          local_4c._4_4_ =
               (local_4c._4_4_ - 1) + (uint)bVar11 + iVar4 + (uint)CARRY4(uVar6,uVar3) &
               -(iVar4 + (uint)(uVar3 != 0));
        }
      }
      else {
        piStack_5c = param_2;
        lVar13 = (*pcVar2)();
        if (lVar13 != 0) {
          lVar5 = lVar13 + CONCAT44((local_4c._4_4_ - 1) + (uint)((uint)local_4c != 0),
                                    (uint)local_4c - 1);
          local_4c._0_4_ = (uint)lVar5 & -(int)lVar13;
          local_4c._4_4_ =
               -((int)((ulonglong)lVar13 >> 0x20) + (uint)((int)lVar13 != 0)) &
               (uint)((ulonglong)lVar5 >> 0x20);
        }
        local_3d = *(byte *)(param_2 + 7) >> 1 & 1;
        if (local_3d == 0) goto LAB_000bf506;
      }
      uVar3 = param_2[3];
      iVar4 = param_2[4];
      if ((*(byte *)(param_1 + 7) & 2) == 0) {
        param_1[3] = (uint)local_4c + param_2[3];
        param_1[4] = local_4c._4_4_ + iVar4 + (uint)CARRY4((uint)local_4c,uVar3);
        return;
      }
      puStack_54 = &UNK_0016c9aa + unaff_EBP;
      piStack_5c = (int *)(unaff_EBP + 0x1623b6);
      puStack_58 = (undefined4 *)0x231;
                    /* WARNING: Subroutine does not return */
      FUN_0005f0b0();
    }
    if (pcVar2 == (code *)(unaff_EBP + -0x570d6)) {
      uVar12 = *(undefined8 *)(param_2 + 9);
    }
    else {
      piStack_5c = param_2;
      uVar12 = (*pcVar2)();
      if ((*(byte *)(param_2 + 7) & 2) == 0) {
LAB_000bf506:
        puStack_54 = (undefined *)(unaff_EBP + 0x16ca72);
        piStack_5c = (int *)(unaff_EBP + 0x1623b6);
        puStack_58 = (undefined4 *)0xcf;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0();
      }
    }
    piStack_5c = (int *)((ulonglong)uVar12 >> 0x20);
    ppiVar9 = (int **)&local_4c;
    puStack_54 = (undefined *)0x0;
    puStack_58 = (undefined4 *)0x0;
    local_4c = FUN_0007ac00(param_1 + 0x2d,param_2[3],param_2[4],(int)uVar12);
    if (local_4c == -1) {
      iVar4 = param_1[8];
      piStack_5c = (int *)(unaff_EBP + 0x16b78a);
      piVar7 = (int *)gettext();
      piVar10 = piStack_5c;
      ppiVar9 = &piStack_5c;
      piStack_5c = piVar7;
      puStack_58 = (undefined4 *)iVar4;
      FUN_0005acd0();
      uVar8 = extraout_EDX_00;
LAB_000bf5c1:
      *(undefined4 *)((int)ppiVar9 + -4) = uVar8;
      *(int **)((int)ppiVar9 + -8) = piVar10 + -0x35981;
      *(undefined4 *)((int)ppiVar9 + -0xc) = 0x163;
      *(int **)((int)ppiVar9 + -0x10) = piVar10 + -0x3827d;
                    /* WARNING: Subroutine does not return */
      *(undefined **)((int)ppiVar9 + -0x14) = &UNK_000bf5dc;
      FUN_0005f0b0();
    }
    if ((*(byte *)(param_1 + 7) & 1) != 0) {
      if ((*(byte *)(param_1 + 7) & 4) == 0) {
        puStack_54 = &UNK_0016c9f6 + unaff_EBP;
        piStack_5c = (int *)(unaff_EBP + 0x1623b6);
        puStack_58 = (undefined4 *)0xe3;
                    /* WARNING: Subroutine does not return */
        FUN_0005f0b0();
      }
      uVar3 = param_1[5];
      uVar6 = param_1[5];
      iVar4 = param_1[6];
      bVar1 = *(byte *)(param_2 + 7);
      if ((bVar1 & 1) == 0) {
        *(longlong *)(param_2 + 1) = local_4c + *(longlong *)(param_1 + 1);
        *(byte *)(param_2 + 7) = bVar1 | 1;
        if ((bVar1 & 4) != 0) goto LAB_000bf557;
        param_2[5] = (uint)local_4c + uVar6;
        param_2[6] = (int)((ulonglong)local_4c >> 0x20) + iVar4 + (uint)CARRY4((uint)local_4c,uVar3)
        ;
        *(byte *)(param_2 + 7) = bVar1 | 5;
        if ((bVar1 & 2) == 0) {
          piStack_5c = param_2;
          (**(code **)(*param_2 + 0x38))();
          uVar8 = extraout_EDX;
          if ((*(byte *)(param_2 + 7) & 2) == 0) goto LAB_000bf5c1;
        }
        return;
      }
      goto LAB_000bf53c;
    }
  }
  puStack_54 = &UNK_0016ca2e + unaff_EBP;
  piStack_5c = (int *)(unaff_EBP + 0x1623b6);
  puStack_58 = (undefined4 *)0xc5;
                    /* WARNING: Subroutine does not return */
  FUN_0005f0b0();
}

