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

undefined4
__gxx_personality_v0
          (int param_1,uint param_2,uint param_3,int param_4,int param_5,_Unwind_Context *param_6)

{
  undefined4 uVar1;
  bool bVar2;
  byte bVar3;
  uchar uVar4;
  uchar *puVar5;
  uint uVar6;
  int iVar7;
  undefined4 uVar8;
  type_info *ptVar9;
  byte bVar10;
  uint uVar11;
  byte *pbVar12;
  type_info *extraout_EDX;
  byte *pbVar13;
  uint **ppuVar14;
  uint unaff_EBP;
  uint uVar15;
  byte bVar16;
  uint *local_7c;
  uint *local_78;
  undefined **local_74;
  bool bStack_6e;
  bool bStack_6d;
  uint local_6c;
  uint local_68;
  int local_64;
  uchar *local_60;
  lsda_header_info *local_5c;
  undefined4 local_48;
  int local_44;
  uint local_40;
  uint local_3c;
  uint local_38;
  int local_34 [2];
  undefined4 local_2c;
  byte *local_24;
  uchar local_20;
  uchar local_1f;
  
  ppuVar14 = &local_7c;
  local_74 = &_GLOBAL_OFFSET_TABLE_;
  local_48 = 0;
  local_44 = 0;
  if (param_1 != 1) {
    return 3;
  }
  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);
  local_6c = param_3 + 0xbcd4d500;
  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;
  bStack_6e = local_68 == 0 && bVar2;
  bStack_6d = param_2 == 6 && bStack_6e;
  if (param_2 == 6 && (local_68 == 0 && bVar2)) {
    local_64 = *(int *)(param_5 + -0xc);
    if (*(int *)(param_5 + -0xc) != 0) {
      local_7c = *(uint **)(param_5 + -0x18);
      local_60 = *(uchar **)(param_5 + -0x10);
LAB_0017f6a2:
      if ((int)*ppuVar14 < 0) {
        ((int *)ppuVar14)[-1] = 0x17f994;
        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],
                          (lsda_header_info *)((int *)ppuVar14 + 0x12));
        ((int *)ppuVar14)[-1] = 0x17f9a5;
        iVar7 = base_of_encoded_value
                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]
                          );
        ((int *)ppuVar14)[0x14] = iVar7;
        ((int *)ppuVar14)[-1] = 0x17f9ba;
        uVar8 = base_of_encoded_value
                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]
                          );
        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;
      }
      goto LAB_0017f6ad;
    }
  }
  else {
    local_60 = (uchar *)_Unwind_GetLanguageSpecificData();
    ppuVar14 = &local_7c;
    if (local_60 == (uchar *)0x0) {
      return 8;
    }
    local_5c = (lsda_header_info *)local_34;
    pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);
    local_2c = base_of_encoded_value(local_20,param_6);
    iVar7 = _Unwind_GetIPInfo();
    uVar6 = iVar7 - (uint)(local_44 == 0);
    if (pbVar12 < local_24) {
      local_7c = &local_3c;
      local_78 = &local_38;
      do {
        uVar4 = local_1f;
        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);
        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);
        uVar4 = local_1f;
        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);
        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);
        uVar4 = local_1f;
        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);
        unaff_EBP = 0;
        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);
        bVar16 = 0;
        do {
          pbVar12 = pbVar13 + 1;
          bVar10 = *pbVar13;
          bVar3 = bVar16 & 0x1f;
          bVar16 = bVar16 + 7;
          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;
          pbVar13 = pbVar12;
        } while ((char)bVar10 < '\0');
        if (uVar6 < local_40 + local_34[0]) break;
        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;
      } while (pbVar12 < local_24);
    }
    ppuVar14 = &local_7c;
    if ((param_2 & 1) != 0) {
      local_7c = (uint *)0x0;
      local_64 = 0;
      local_78 = (uint *)0x0;
LAB_0017f86c:
      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {
        return 6;
      }
      iVar7 = (int)ppuVar14[0x24];
      uVar8 = ppuVar14[0xd];
      *(uint **)(iVar7 + -0x18) = *ppuVar14;
      uVar1 = ppuVar14[1];
      *(undefined4 *)(iVar7 + -8) = uVar8;
      *(undefined4 *)(iVar7 + -0x14) = uVar1;
      *(uint **)(iVar7 + -0x10) = ppuVar14[7];
      *(uint **)(iVar7 + -0xc) = ppuVar14[6];
      return 6;
    }
    if (((param_2 & 8) != 0) ||
       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {
                    /* WARNING: Subroutine does not return */
      std::terminate();
    }
  }
  ppuVar14 = (uint **)&stack0xffffff74;
  __cxa_call_terminate();
LAB_0017f8ce:
  if (ppuVar14[0x11] == (uint *)0x0) {
    return 8;
  }
  uVar6 = (int)ppuVar14[0x11] + (int)ppuVar14[0x13];
  ppuVar14[6] = (uint *)uVar6;
  if (unaff_EBP != 0) {
    ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP);
    if (ppuVar14[6] == (uint *)0x0) {
      return 8;
    }
    if (ppuVar14[1] != (uint *)0x0) {
      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);
      if (((uint)ppuVar14[0x21] & 8) == 0) {
        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);
        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {
          uVar6 = (int)ppuVar14[0x24] + 0x20;
          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {
            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);
          }
          ppuVar14[0xd] = (uint *)uVar6;
          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);
        }
      }
      else {
        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);
      }
      do {
        uVar15 = 0;
        uVar6 = 0;
        pbVar12 = (byte *)ppuVar14[1];
        do {
          pbVar13 = pbVar12 + 1;
          bVar16 = *pbVar12;
          bVar10 = (byte)uVar6;
          uVar6 = uVar6 + 7;
          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);
          pbVar12 = pbVar13;
        } while ((char)bVar16 < '\0');
        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {
          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));
        }
        *ppuVar14 = (uint *)uVar15;
        uVar11 = 0;
        uVar6 = 0;
        do {
          bVar16 = *pbVar12;
          pbVar12 = pbVar12 + 1;
          bVar10 = (byte)uVar11;
          uVar11 = uVar11 + 7;
          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);
        } while ((char)bVar16 < '\0');
        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {
          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));
        }
        if (uVar15 == 0) {
          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;
        }
        else {
          if ((int)uVar15 < 1) {
            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&
               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;
            ppuVar14[0xb] = (uint *)uVar6;
            bVar16 = 0;
            uVar11 = 0;
            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);
            do {
              bVar10 = *pbVar12;
              bVar3 = bVar16 & 0x1f;
              bVar16 = bVar16 + 7;
              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;
              pbVar12 = pbVar12 + 1;
            } while ((char)bVar10 < '\0');
            uVar6 = (uint)ppuVar14[0xb];
            bVar16 = uVar11 == 0;
          }
          else {
            ppuVar14[-1] = (uint *)0x17fb42;
            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);
            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;
            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;
            ppuVar14[-1] = (uint *)0x17fb57;
            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);
          }
          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {
LAB_0017fb5b:
            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;
            if ((ppuVar14[10] == (uint *)0x0) &&
               (uVar6 = (uint)ppuVar14[5],
               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))
            goto LAB_0017f6a2;
            if (-1 < (int)uVar15) goto LAB_0017f6ad;
            pbVar13 = (byte *)ppuVar14[2];
                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */
            ppuVar14[-1] = (uint *)0x17fb9d;
            std::unexpected();
            ptVar9 = extraout_EDX;
LAB_0017fba0:
            ppuVar14[-4] = (uint *)uVar15;
            ppuVar14[-5] = (uint *)0x17fbb1;
            bVar16 = check_exception_spec
                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],
                                (long)ppuVar14[-4]);
          }
        }
LAB_0017fb18:
        if (uVar6 == 0) goto LAB_0017fbbc;
        ppuVar14[1] = (uint *)(pbVar13 + uVar6);
      } while( true );
    }
    goto LAB_0017fbc7;
  }
  if (uVar6 == 0) {
    return 8;
  }
  if (((uint)ppuVar14[0x21] & 1) != 0) {
    return 8;
  }
  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 8);
  if ((((uint)ppuVar14[0x21] & 8) == 0) &&
     (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]))
  goto LAB_0017f6ad;
  goto LAB_0017f974;
LAB_0017fbbc:
  if (*(char *)((int)ppuVar14 + 0xf) == '\0') {
    return 8;
  }
LAB_0017fbc7:
  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 1);
  if (((uint)ppuVar14[0x21] & 1) != 0) {
    return 8;
  }
  if ((((uint)ppuVar14[0x21] & 8) != 0) ||
     (ppuVar14[5] <= *ppuVar14 &&
      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5]))) goto LAB_0017f6ad;
LAB_0017f974:
  *ppuVar14 = (uint *)0x0;
LAB_0017f6ad:
  ppuVar14[-2] = ppuVar14[0x24];
  ppuVar14[-3] = (uint *)0x0;
  ppuVar14[-4] = ppuVar14[0x25];
  ppuVar14[-5] = (uint *)0x17f6cb;
  _Unwind_SetGR();
  ppuVar14[-2] = *ppuVar14;
  ppuVar14[-3] = (uint *)0x2;
  ppuVar14[-4] = ppuVar14[0x25];
  ppuVar14[-5] = (uint *)0x17f6e0;
  _Unwind_SetGR();
  ppuVar14[-3] = ppuVar14[6];
  ppuVar14[-4] = ppuVar14[0x25];
  ppuVar14[-5] = (uint *)0x17f6f2;
  _Unwind_SetIP();
  return 7;
}



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

undefined4 FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)

{
  undefined4 uVar1;
  bool bVar2;
  byte bVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  byte bVar7;
  uint uVar8;
  byte *pbVar9;
  byte *pbVar10;
  int **ppiVar11;
  uint unaff_EBP;
  uint uVar12;
  byte bVar13;
  int *local_8c;
  int *local_88;
  undefined *puStack_80;
  int *local_7c;
  int *local_78;
  undefined **local_74;
  bool bStack_6e;
  bool bStack_6d;
  uint local_6c;
  uint local_68;
  int local_64;
  int local_60;
  int *local_5c;
  undefined4 local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int local_34 [2];
  undefined4 local_2c;
  byte *local_24;
  
  ppiVar11 = &local_7c;
  local_74 = &__DT_PLTGOT;
  local_48 = 0;
  local_44 = 0;
  if (param_1 != 1) {
    return 3;
  }
  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);
  local_6c = param_3 + 0xbcd4d500;
  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;
  bStack_6e = local_68 == 0 && bVar2;
  bStack_6d = param_2 == 6 && bStack_6e;
  if (param_2 == 6 && (local_68 == 0 && bVar2)) {
    local_64 = param_5[-3];
    if (param_5[-3] != 0) {
      local_7c = (int *)param_5[-6];
      local_60 = param_5[-4];
LAB_0017f6a2:
      if ((int)*ppiVar11 < 0) {
        ((int *)ppiVar11)[-1] = 0x17f994;
        FUN_0017f500();
        ((int *)ppiVar11)[-1] = 0x17f9a5;
        iVar5 = FUN_0017f480();
        ((int *)ppiVar11)[0x14] = iVar5;
        ((int *)ppiVar11)[-1] = 0x17f9ba;
        uVar6 = FUN_0017f480();
        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;
      }
      goto LAB_0017f6ad;
    }
  }
  else {
    local_8c = param_6;
    local_60 = FUN_00217430();
    ppiVar11 = &local_7c;
    if (local_60 == 0) {
      return 8;
    }
    local_5c = local_34;
    puStack_80 = (undefined *)0x17f754;
    pbVar9 = (byte *)FUN_0017f500();
    puStack_80 = (undefined *)0x17f767;
    local_2c = FUN_0017f480();
    local_88 = &local_44;
    local_8c = param_6;
    iVar5 = FUN_00217400();
    uVar4 = iVar5 - (uint)(local_44 == 0);
    if (pbVar9 < local_24) {
      local_7c = &local_3c;
      local_78 = &local_38;
      do {
        puStack_80 = (undefined *)0x17f7be;
        FUN_0017f480();
        local_8c = &local_40;
        FUN_0017f230();
        puStack_80 = (undefined *)0x17f7e0;
        FUN_0017f480();
        local_8c = local_7c;
        FUN_0017f230();
        puStack_80 = (undefined *)0x17f805;
        FUN_0017f480();
        unaff_EBP = 0;
        local_8c = local_78;
        pbVar9 = (byte *)FUN_0017f230();
        bVar13 = 0;
        do {
          pbVar10 = pbVar9 + 1;
          bVar7 = *pbVar9;
          bVar3 = bVar13 & 0x1f;
          bVar13 = bVar13 + 7;
          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;
          pbVar9 = pbVar10;
        } while ((char)bVar7 < '\0');
        if (uVar4 < (uint)(local_40 + local_34[0])) break;
        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;
      } while (pbVar10 < local_24);
    }
    ppiVar11 = &local_7c;
    if ((param_2 & 1) != 0) {
      local_7c = (int *)0x0;
      local_64 = 0;
      local_78 = (int *)0x0;
LAB_0017f86c:
      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {
        return 6;
      }
      iVar5 = (int)ppiVar11[0x24];
      uVar6 = ppiVar11[0xd];
      *(int **)(iVar5 + -0x18) = *ppiVar11;
      uVar1 = ppiVar11[1];
      *(undefined4 *)(iVar5 + -8) = uVar6;
      *(undefined4 *)(iVar5 + -0x14) = uVar1;
      *(int **)(iVar5 + -0x10) = ppiVar11[7];
      *(int **)(iVar5 + -0xc) = ppiVar11[6];
      return 6;
    }
    if (((param_2 & 8) != 0) ||
       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {
                    /* WARNING: Subroutine does not return */
      puStack_80 = &UNK_0017f928;
      FUN_0017f140();
    }
  }
  ppiVar11 = &local_8c;
  local_8c = param_5;
  FUN_00180050();
LAB_0017f8ce:
  if (ppiVar11[0x11] == (int *)0x0) {
    return 8;
  }
  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];
  ppiVar11[6] = (int *)uVar4;
  if (unaff_EBP != 0) {
    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);
    if (ppiVar11[6] == (int *)0x0) {
      return 8;
    }
    if (ppiVar11[1] != (int *)0x0) {
      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);
      if (((uint)ppiVar11[0x21] & 8) == 0) {
        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);
        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {
          uVar4 = (int)ppiVar11[0x24] + 0x20;
          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {
            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);
          }
          ppiVar11[0xd] = (int *)uVar4;
          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);
        }
      }
      else {
        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);
      }
      do {
        uVar12 = 0;
        uVar4 = 0;
        pbVar9 = (byte *)ppiVar11[1];
        do {
          pbVar10 = pbVar9 + 1;
          bVar13 = *pbVar9;
          bVar7 = (byte)uVar4;
          uVar4 = uVar4 + 7;
          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);
          pbVar9 = pbVar10;
        } while ((char)bVar13 < '\0');
        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {
          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));
        }
        *ppiVar11 = (int *)uVar12;
        uVar8 = 0;
        uVar4 = 0;
        do {
          bVar13 = *pbVar9;
          pbVar9 = pbVar9 + 1;
          bVar7 = (byte)uVar8;
          uVar8 = uVar8 + 7;
          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);
        } while ((char)bVar13 < '\0');
        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {
          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));
        }
        if (uVar12 == 0) {
          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;
        }
        else {
          if ((int)uVar12 < 1) {
            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&
               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;
            ppiVar11[0xb] = (int *)uVar4;
            bVar13 = 0;
            uVar8 = 0;
            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);
            do {
              bVar7 = *pbVar9;
              bVar3 = bVar13 & 0x1f;
              bVar13 = bVar13 + 7;
              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;
              pbVar9 = pbVar9 + 1;
            } while ((char)bVar7 < '\0');
            uVar4 = (uint)ppiVar11[0xb];
            bVar13 = uVar8 == 0;
          }
          else {
            ppiVar11[-1] = (int *)0x17fb42;
            iVar5 = FUN_0017f380();
            if (iVar5 == 0) goto LAB_0017fb5b;
            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;
            ppiVar11[-1] = (int *)0x17fb57;
            bVar13 = FUN_0017f1e0();
          }
          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {
LAB_0017fb5b:
            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;
            if ((ppiVar11[10] == (int *)0x0) &&
               (uVar4 = (uint)ppiVar11[5],
               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))
            goto LAB_0017f6a2;
            if (-1 < (int)uVar12) goto LAB_0017f6ad;
            pbVar10 = (byte *)ppiVar11[2];
                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */
            ppiVar11[-1] = (int *)0x17fb9d;
            FUN_0017f1c0();
LAB_0017fba0:
            ppiVar11[-4] = (int *)uVar12;
            ppiVar11[-5] = (int *)0x17fbb1;
            bVar13 = FUN_0017f410();
          }
        }
LAB_0017fb18:
        if (uVar4 == 0) goto LAB_0017fbbc;
        ppiVar11[1] = (int *)(pbVar10 + uVar4);
      } while( true );
    }
    goto LAB_0017fbc7;
  }
  if (uVar4 == 0) {
    return 8;
  }
  if (((uint)ppiVar11[0x21] & 1) != 0) {
    return 8;
  }
  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);
  if ((((uint)ppiVar11[0x21] & 8) == 0) &&
     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))
  goto LAB_0017f6ad;
  goto LAB_0017f974;
LAB_0017fbbc:
  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {
    return 8;
  }
LAB_0017fbc7:
  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);
  if (((uint)ppiVar11[0x21] & 1) != 0) {
    return 8;
  }
  if ((((uint)ppiVar11[0x21] & 8) != 0) ||
     (ppiVar11[5] <= *ppiVar11 &&
      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;
LAB_0017f974:
  *ppiVar11 = (int *)0x0;
LAB_0017f6ad:
  ppiVar11[-2] = ppiVar11[0x24];
  ppiVar11[-3] = (int *)0x0;
  ppiVar11[-4] = ppiVar11[0x25];
  ppiVar11[-5] = (int *)0x17f6cb;
  FUN_00217390();
  ppiVar11[-2] = *ppiVar11;
  ppiVar11[-3] = (int *)0x2;
  ppiVar11[-4] = ppiVar11[0x25];
  ppiVar11[-5] = (int *)0x17f6e0;
  FUN_00217390();
  ppiVar11[-3] = ppiVar11[6];
  ppiVar11[-4] = ppiVar11[0x25];
  ppiVar11[-5] = (int *)0x17f6f2;
  FUN_00217420();
  return 7;
}


CALL 0x0004fb76
ADD EAX,0x182a0b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x6c
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV ECX,dword ptr [ESP + 0x88]
MOV EBX,dword ptr [ESP + 0x8c]
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x38],0x0
CMP EAX,0x1
JNZ 0x0017f708
ADD ECX,0xbcd4d500
ADC EBX,0xb8b1aabc
CMP EAX,ECX
MOV EAX,0x0
MOV dword ptr [ESP + 0x10],ECX
SBB EAX,EBX
MOV dword ptr [ESP + 0x14],EBX
SETNC byte ptr [ESP + 0xe]
CMP dword ptr [ESP + 0x84],0x6
MOVZX EBX,byte ptr [ESP + 0xe]
SETZ AL
AND AL,BL
MOV byte ptr [ESP + 0xf],AL
JZ 0x0017f718
MOV EAX,dword ptr [ESP + 0x90]
MOV EAX,dword ptr [EAX + -0xc]
MOV dword ptr [ESP + 0x18],EAX
TEST EAX,EAX
JZ 0x0017f8bb
MOV EAX,dword ptr [ESP + 0x90]
MOV EAX,dword ptr [EAX + -0x18]
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [ESP + 0x90]
MOV EAX,dword ptr [EAX + -0x10]
MOV dword ptr [ESP + 0x1c],EAX
MOV ECX,dword ptr [ESP]
TEST ECX,ECX
JS 0x0017f980
SUB ESP,0x4
PUSH dword ptr [ESP + 0x94]
PUSH 0x0
PUSH dword ptr [ESP + 0xa0]
MOV EDI,dword ptr [ESP + 0x18]
MOV EBX,EDI
CALL 0x00217390
ADD ESP,0xc
PUSH dword ptr [ESP + 0x4]
PUSH 0x2
PUSH dword ptr [ESP + 0xa0]
CALL 0x00217390
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0xa0]
CALL 0x00217420
ADD ESP,0x10
MOV EAX,0x7
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,0x3
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0xa0]
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00217430
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0017f8d6
LEA EAX,[ESP + 0x48]
MOV EDX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x20],EAX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x94]
CALL 0x0017f500
MOV EDX,dword ptr [ESP + 0x94]
MOV ESI,EAX
MOVZX EAX,byte ptr [ESP + 0x5c]
CALL 0x0017f480
SUB ESP,0x8
MOV dword ptr [ESP + 0x58],EAX
LEA EAX,[ESP + 0x40]
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00217400
ADD ESP,0x10
MOV EBX,EAX
CMP dword ptr [ESP + 0x38],0x1
SBB EBX,0x0
CMP ESI,dword ptr [ESP + 0x58]
JNC 0x0017f847
LEA EAX,[ESP + 0x40]
LEA EDI,[ESP + 0x3c]
MOV dword ptr [ESP],EAX
LEA EAX,[ESP + 0x44]
MOV dword ptr [ESP + 0x4],EAX
LEA ESI,[ESI]
MOVZX EBP,byte ptr [ESP + 0x5d]
XOR EDX,EDX
MOV EAX,EBP
CALL 0x0017f480
SUB ESP,0xc
MOV ECX,ESI
PUSH EDI
MOV EDX,EAX
MOV EAX,EBP
CALL 0x0017f230
MOVZX ESI,byte ptr [ESP + 0x6d]
XOR EDX,EDX
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,ESI
CALL 0x0017f480
SUB ESP,0xc
MOV ECX,EBP
PUSH dword ptr [ESP + 0xc]
MOV EDX,EAX
MOV EAX,ESI
CALL 0x0017f230
MOVZX ESI,byte ptr [ESP + 0x6d]
XOR EDX,EDX
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,ESI
CALL 0x0017f480
SUB ESP,0xc
MOV ECX,EBP
XOR EBP,EBP
PUSH dword ptr [ESP + 0x10]
MOV EDX,EAX
MOV EAX,ESI
CALL 0x0017f230
ADD ESP,0x10
XOR ECX,ECX
MOV ESI,EAX
ADD ESI,0x1
MOVZX EDX,byte ptr [ESI + -0x1]
MOV EAX,EDX
AND EAX,0x7f
SHL EAX,CL
ADD ECX,0x7
OR EBP,EAX
TEST DL,DL
JS 0x0017f820
MOV EAX,dword ptr [ESP + 0x3c]
ADD EAX,dword ptr [ESP + 0x48]
CMP EAX,EBX
JBE 0x0017f8e8
TEST byte ptr [ESP + 0x84],0x1
JZ 0x0017f900
MOV dword ptr [ESP],0x0
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x4],0x0
MOV EDI,dword ptr [ESP + 0x10]
MOV EAX,0x1
MOV EBP,dword ptr [ESP + 0x14]
CMP EAX,EDI
MOV EAX,0x0
SBB EAX,EBP
MOV EAX,0x6
JC 0x0017f70d
MOV EDI,dword ptr [ESP + 0x90]
MOV EBX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x34]
MOV dword ptr [EDI + -0x18],EBX
MOV EBX,dword ptr [ESP + 0x4]
MOV dword ptr [EDI + -0x8],EDX
MOV dword ptr [EDI + -0x14],EBX
MOV EBX,dword ptr [ESP + 0x1c]
MOV dword ptr [EDI + -0x10],EBX
MOV EBX,dword ptr [ESP + 0x18]
MOV dword ptr [EDI + -0xc],EBX
JMP 0x0017f70d
SUB ESP,0xc
PUSH dword ptr [ESP + 0x9c]
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00180050
MOV EAX,dword ptr [ESP + 0x44]
TEST EAX,EAX
JNZ 0x0017f930
ADD ESP,0x6c
MOV EAX,0x8
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD EAX,dword ptr [ESP + 0x40]
CMP EAX,EBX
JA 0x0017f8ce
CMP dword ptr [ESP + 0x58],ESI
JA 0x0017f7b0
JMP 0x0017f847
MOV EAX,dword ptr [ESP + 0x84]
AND EAX,0x8
JNZ 0x0017f91f
MOV EDI,dword ptr [ESP + 0x10]
MOV EDX,0x1
MOV EBP,dword ptr [ESP + 0x14]
CMP EDX,EDI
SBB EAX,EBP
JNC 0x0017f8bb
MOV EBX,dword ptr [ESP + 0x8]
CALL 0x0017f140
ADD EAX,dword ptr [ESP + 0x4c]
MOV dword ptr [ESP + 0x18],EAX
TEST EBP,EBP
JNZ 0x0017f9c9
TEST EAX,EAX
JZ 0x0017f8d6
TEST byte ptr [ESP + 0x84],0x1
JNZ 0x0017f8d6
MOV EAX,dword ptr [ESP + 0x84]
AND EAX,0x8
MOV dword ptr [ESP],EAX
JNZ 0x0017f974
MOV EBX,dword ptr [ESP + 0x10]
MOV EAX,0x1
MOV ESI,dword ptr [ESP + 0x14]
CMP EAX,EBX
SBB EBP,ESI
JNC 0x0017f6ad
MOV dword ptr [ESP],0x0
JMP 0x0017f6ad
MOV EDX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x94]
LEA ECX,[ESP + 0x48]
CALL 0x0017f500
MOV EDX,dword ptr [ESP + 0x94]
MOVZX EAX,byte ptr [ESP + 0x5c]
CALL 0x0017f480
MOV EDX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0x50],EAX
MOVZX EAX,byte ptr [ESP + 0x5c]
CALL 0x0017f480
MOV EDI,dword ptr [ESP + 0x90]
MOV dword ptr [EDI + -0xc],EAX
JMP 0x0017f6ad
MOV EAX,dword ptr [ESP + 0x58]
LEA EAX,[EAX + EBP*0x1 + -0x1]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x0017f8d6
MOV EBP,dword ptr [ESP + 0x4]
TEST EBP,EBP
JZ 0x0017fbc7
MOV EAX,dword ptr [ESP + 0x84]
AND EAX,0x8
MOV EBX,EAX
MOV dword ptr [ESP + 0x28],EAX
JNZ 0x0017fc07
MOV EDI,dword ptr [ESP + 0x10]
MOV EAX,0x1
MOV EBP,dword ptr [ESP + 0x14]
CMP EAX,EDI
MOV EAX,EBX
SBB EAX,EBP
MOV EAX,dword ptr [ESP + 0x8]
LEA EAX,[EAX + 0xffffcf1c]
MOV dword ptr [ESP + 0x24],EAX
JNC 0x0017fc1a
LEA ESI,[ESI]
MOV EBX,dword ptr [ESP + 0x4]
XOR EBP,EBP
XOR ECX,ECX
LEA ESI,[ESI]
NOP
ADD EBX,0x1
MOVZX EDX,byte ptr [EBX + -0x1]
MOV EAX,EDX
AND EAX,0x7f
SHL EAX,CL
ADD ECX,0x7
OR EBP,EAX
TEST DL,DL
JS 0x0017fa40
CMP ECX,0x1f
JA 0x0017fa6c
AND EDX,0x40
JZ 0x0017fa6c
MOV EAX,0x1
SHL EAX,CL
NEG EAX
OR EBP,EAX
MOV dword ptr [ESP],EBP
MOV EDX,EBX
XOR ESI,ESI
XOR ECX,ECX
MOV EDI,EBX
LEA ESI,[ESI]
NOP
MOVZX EBX,byte ptr [EDX]
ADD EDX,0x1
MOV EAX,EBX
AND EAX,0x7f
SHL EAX,CL
ADD ECX,0x7
OR ESI,EAX
TEST BL,BL
JS 0x0017fa80
MOV EAX,EDI
MOV EDI,EBX
MOV EBX,EAX
CMP ECX,0x1f
JA 0x0017fab1
AND EDI,0x40
JZ 0x0017fab1
MOV EAX,0x1
SHL EAX,CL
NEG EAX
OR ESI,EAX
TEST EBP,EBP
JZ 0x0017fb30
JG 0x0017fb37
MOV EDI,dword ptr [ESP + 0x28]
TEST EDI,EDI
SETZ AL
TEST byte ptr [ESP + 0xe],AL
JZ 0x0017fad6
MOV EDX,dword ptr [ESP + 0x24]
TEST EDX,EDX
JNZ 0x0017fba0
MOV EDX,EBP
XOR EAX,EAX
MOV dword ptr [ESP + 0x2c],ESI
XOR ECX,ECX
NOT EDX
MOV EDI,EBX
ADD EDX,dword ptr [ESP + 0x54]
MOV ESI,EAX
LEA ESI,[ESI]
ADD EDX,0x1
MOVZX EBX,byte ptr [EDX + -0x1]
MOV EAX,EBX
AND EAX,0x7f
SHL EAX,CL
ADD ECX,0x7
OR ESI,EAX
TEST BL,BL
JS 0x0017faf0
MOV EAX,ESI
MOV ESI,dword ptr [ESP + 0x2c]
MOV EBX,EDI
TEST EAX,EAX
SETZ AL
TEST AL,AL
JNZ 0x0017fb5b
TEST ESI,ESI
JZ 0x0017fbbc
LEA EAX,[EBX + ESI*0x1]
MOV dword ptr [ESP + 0x4],EAX
JMP 0x0017fa30
MOV byte ptr [ESP + 0xf],0x1
JMP 0x0017fb18
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,EBP
CALL 0x0017f380
TEST EAX,EAX
JZ 0x0017fb5b
MOV EDX,dword ptr [ESP + 0x24]
TEST EDX,EDX
JZ 0x0017fb18
LEA ECX,[ESP + 0x34]
CALL 0x0017f1e0
TEST AL,AL
JZ 0x0017fb18
TEST byte ptr [ESP + 0x84],0x1
JNZ 0x0017f86c
MOV EBX,dword ptr [ESP + 0x28]
TEST EBX,EBX
JNZ 0x0017fb8c
MOV EBX,dword ptr [ESP + 0x10]
MOV EAX,0x1
MOV ESI,dword ptr [ESP + 0x14]
CMP EAX,EBX
MOV EAX,dword ptr [ESP + 0x28]
SBB EAX,ESI
JNC 0x0017f6a2
TEST EBP,EBP
JNS 0x0017f6ad
MOV EBX,dword ptr [ESP + 0x8]
CALL 0x0017f1c0
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EBP
MOV ECX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x0017f410
ADD ESP,0x10
XOR EAX,0x1
JMP 0x0017fb14
CMP byte ptr [ESP + 0xf],0x0
JZ 0x0017f8d6
MOV EAX,dword ptr [ESP + 0x84]
AND EAX,0x1
MOV dword ptr [ESP],EAX
JNZ 0x0017f8d6
TEST byte ptr [ESP + 0x84],0x8
JNZ 0x0017f6ad
MOV EDI,dword ptr [ESP + 0x10]
MOV EAX,0x1
MOV EBP,dword ptr [ESP + 0x14]
CMP EAX,EDI
MOV EAX,dword ptr [ESP]
SBB EAX,EBP
JC 0x0017f974
JMP 0x0017f6ad
MOV EAX,dword ptr [ESP + 0x8]
LEA EAX,[EAX + 0xffffcf14]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0017fa30
MOV EAX,dword ptr [ESP + 0x90]
MOV EDI,dword ptr [ESP + 0x90]
ADD EAX,0x20
TEST byte ptr [EDI],0x1
JZ 0x0017fc33
MOV EAX,dword ptr [EDI + -0x30]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [EAX + -0x50]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0017fa30
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nundefined4 FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}\n\n" comment (function_definition "undefined4 FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}" type_identifier (function_declarator "FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)" identifier (parameter_list "(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "int **ppiVar11;" primitive_type (pointer_declarator "**ppiVar11" * (pointer_declarator "*ppiVar11" * identifier)) ;) (declaration "uint unaff_EBP;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int *local_8c;" primitive_type (pointer_declarator "*local_8c" * identifier) ;) (declaration "int *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "int *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "int *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "bool bStack_6e;" primitive_type identifier ;) (declaration "bool bStack_6d;" primitive_type identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34 [2];" primitive_type (array_declarator "local_34 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "local_74 = &__DT_PLTGOT;" (assignment_expression "local_74 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (param_1 != 1) {\n    return 3;\n  }" if (parenthesized_expression "(param_1 != 1)" ( (binary_expression "param_1 != 1" identifier != number_literal) )) (compound_statement "{\n    return 3;\n  }" { (return_statement "return 3;" return number_literal ;) })) (expression_statement "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);" (assignment_expression "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" identifier = (binary_expression "param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" (binary_expression "param_4 + -0x474e5544" identifier + number_literal) + (call_expression "(uint)(0x432b2aff < param_3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x432b2aff < param_3)" ( (binary_expression "0x432b2aff < param_3" number_literal < identifier) ))))) ;) (expression_statement "local_6c = param_3 + 0xbcd4d500;" (assignment_expression "local_6c = param_3 + 0xbcd4d500" identifier = (binary_expression "param_3 + 0xbcd4d500" identifier + number_literal)) ;) (expression_statement "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;" (assignment_expression "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68" identifier = (binary_expression "(uint)(1 < param_3 + 0xbcd4d500) <= -local_68" (call_expression "(uint)(1 < param_3 + 0xbcd4d500)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < param_3 + 0xbcd4d500)" ( (binary_expression "1 < param_3 + 0xbcd4d500" number_literal < (binary_expression "param_3 + 0xbcd4d500" identifier + number_literal)) ))) <= (unary_expression "-local_68" - identifier))) ;) (expression_statement "bStack_6e = local_68 == 0 && bVar2;" (assignment_expression "bStack_6e = local_68 == 0 && bVar2" identifier = (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" identifier == number_literal) && identifier)) ;) (expression_statement "bStack_6d = param_2 == 6 && bStack_6e;" (assignment_expression "bStack_6d = param_2 == 6 && bStack_6e" identifier = (binary_expression "param_2 == 6 && bStack_6e" (binary_expression "param_2 == 6" identifier == number_literal) && identifier)) ;) (if_statement "if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" if (parenthesized_expression "(param_2 == 6 && (local_68 == 0 && bVar2))" ( (binary_expression "param_2 == 6 && (local_68 == 0 && bVar2)" (binary_expression "param_2 == 6" identifier == number_literal) && (parenthesized_expression "(local_68 == 0 && bVar2)" ( (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" identifier == number_literal) && identifier) ))) )) (compound_statement "{\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }" { (expression_statement "local_64 = param_5[-3];" (assignment_expression "local_64 = param_5[-3]" identifier = (subscript_expression "param_5[-3]" identifier [ number_literal ])) ;) (if_statement "if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }" if (parenthesized_expression "(param_5[-3] != 0)" ( (binary_expression "param_5[-3] != 0" (subscript_expression "param_5[-3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }" { (expression_statement "local_7c = (int *)param_5[-6];" (assignment_expression "local_7c = (int *)param_5[-6]" identifier = (cast_expression "(int *)param_5[-6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[-6]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = param_5[-4];" (assignment_expression "local_60 = param_5[-4]" identifier = (subscript_expression "param_5[-4]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" statement_identifier : (if_statement "if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" if (parenthesized_expression "((int)*ppiVar11 < 0)" ( (binary_expression "(int)*ppiVar11 < 0" (cast_expression "(int)*ppiVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppiVar11" * identifier)) < number_literal) )) (compound_statement "{\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" { (expression_statement "((int *)ppiVar11)[-1] = 0x17f994;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f994" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0017f500();" (call_expression "FUN_0017f500()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)ppiVar11)[-1] = 0x17f9a5;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f9a5" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = FUN_0017f480();" (assignment_expression "iVar5 = FUN_0017f480()" identifier = (call_expression "FUN_0017f480()" identifier (argument_list "()" ( )))) ;) (expression_statement "((int *)ppiVar11)[0x14] = iVar5;" (assignment_expression "((int *)ppiVar11)[0x14] = iVar5" (subscript_expression "((int *)ppiVar11)[0x14]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "((int *)ppiVar11)[-1] = 0x17f9ba;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f9ba" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar6 = FUN_0017f480();" (assignment_expression "uVar6 = FUN_0017f480()" identifier = (call_expression "FUN_0017f480()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;" (assignment_expression "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6" (pointer_expression "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc)" * (cast_expression "(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)ppiVar11)[0x24] + -0xc)" ( (binary_expression "((int *)ppiVar11)[0x24] + -0xc" (subscript_expression "((int *)ppiVar11)[0x24]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) )))) = identifier) ;) }))) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" else (compound_statement "{\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" { (expression_statement "local_8c = param_6;" (assignment_expression "local_8c = param_6" identifier = identifier) ;) (expression_statement "local_60 = FUN_00217430();" (assignment_expression "local_60 = FUN_00217430()" identifier = (call_expression "FUN_00217430()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (if_statement "if (local_60 == 0) {\n      return 8;\n    }" if (parenthesized_expression "(local_60 == 0)" ( (binary_expression "local_60 == 0" identifier == number_literal) )) (compound_statement "{\n      return 8;\n    }" { (return_statement "return 8;" return number_literal ;) })) (expression_statement "local_5c = local_34;" (assignment_expression "local_5c = local_34" identifier = identifier) ;) (expression_statement "puStack_80 = (undefined *)0x17f754;" (assignment_expression "puStack_80 = (undefined *)0x17f754" identifier = (cast_expression "(undefined *)0x17f754" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = (byte *)FUN_0017f500();" (assignment_expression "pbVar9 = (byte *)FUN_0017f500()" identifier = (cast_expression "(byte *)FUN_0017f500()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017f500()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puStack_80 = (undefined *)0x17f767;" (assignment_expression "puStack_80 = (undefined *)0x17f767" identifier = (cast_expression "(undefined *)0x17f767" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = FUN_0017f480();" (assignment_expression "local_2c = FUN_0017f480()" identifier = (call_expression "FUN_0017f480()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_88 = &local_44;" (assignment_expression "local_88 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "local_8c = param_6;" (assignment_expression "local_8c = param_6" identifier = identifier) ;) (expression_statement "iVar5 = FUN_00217400();" (assignment_expression "iVar5 = FUN_00217400()" identifier = (call_expression "FUN_00217400()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = iVar5 - (uint)(local_44 == 0);" (assignment_expression "uVar4 = iVar5 - (uint)(local_44 == 0)" identifier = (binary_expression "iVar5 - (uint)(local_44 == 0)" identifier - (call_expression "(uint)(local_44 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) ))))) ;) (if_statement "if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }" if (parenthesized_expression "(pbVar9 < local_24)" ( (binary_expression "pbVar9 < local_24" identifier < identifier) )) (compound_statement "{\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }" { (expression_statement "local_7c = &local_3c;" (assignment_expression "local_7c = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "local_78 = &local_38;" (assignment_expression "local_78 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);" do (compound_statement "{\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      }" { (expression_statement "puStack_80 = (undefined *)0x17f7be;" (assignment_expression "puStack_80 = (undefined *)0x17f7be" identifier = (cast_expression "(undefined *)0x17f7be" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_8c = &local_40;" (assignment_expression "local_8c = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "FUN_0017f230();" (call_expression "FUN_0017f230()" identifier (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = (undefined *)0x17f7e0;" (assignment_expression "puStack_80 = (undefined *)0x17f7e0" identifier = (cast_expression "(undefined *)0x17f7e0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_8c = local_7c;" (assignment_expression "local_8c = local_7c" identifier = identifier) ;) (expression_statement "FUN_0017f230();" (call_expression "FUN_0017f230()" identifier (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = (undefined *)0x17f805;" (assignment_expression "puStack_80 = (undefined *)0x17f805" identifier = (cast_expression "(undefined *)0x17f805" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" identifier (argument_list "()" ( ))) ;) (expression_statement "unaff_EBP = 0;" (assignment_expression "unaff_EBP = 0" identifier = number_literal) ;) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)FUN_0017f230();" (assignment_expression "pbVar9 = (byte *)FUN_0017f230()" identifier = (cast_expression "(byte *)FUN_0017f230()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017f230()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');" do (compound_statement "{\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        }" { (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "bVar3 = bVar13 & 0x1f;" (assignment_expression "bVar3 = bVar13 & 0x1f" identifier = (binary_expression "bVar13 & 0x1f" identifier & number_literal)) ;) (expression_statement "bVar13 = bVar13 + 7;" (assignment_expression "bVar13 = bVar13 + 7" identifier = (binary_expression "bVar13 + 7" identifier + number_literal)) ;) (expression_statement "unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;" (assignment_expression "unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3" identifier = (binary_expression "unaff_EBP | (bVar7 & 0x7f) << bVar3" identifier | (binary_expression "(bVar7 & 0x7f) << bVar3" (parenthesized_expression "(bVar7 & 0x7f)" ( (binary_expression "bVar7 & 0x7f" identifier & number_literal) )) << identifier))) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "((char)bVar7 < '\0')" ( (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (uVar4 < (uint)(local_40 + local_34[0])) break;" if (parenthesized_expression "(uVar4 < (uint)(local_40 + local_34[0]))" ( (binary_expression "uVar4 < (uint)(local_40 + local_34[0])" identifier < (call_expression "(uint)(local_40 + local_34[0])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + local_34[0])" ( (binary_expression "local_40 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ])) )))) )) (break_statement "break;" break ;)) (if_statement "if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;" if (parenthesized_expression "(uVar4 < (uint)(local_40 + local_34[0] + local_3c))" ( (binary_expression "uVar4 < (uint)(local_40 + local_34[0] + local_3c)" identifier < (call_expression "(uint)(local_40 + local_34[0] + local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + local_34[0] + local_3c)" ( (binary_expression "local_40 + local_34[0] + local_3c" (binary_expression "local_40 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ])) + identifier) )))) )) (goto_statement "goto LAB_0017f8ce;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar10 < local_24)" ( (binary_expression "pbVar10 < local_24" identifier < identifier) )) ;) })) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (if_statement "if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }" if (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }" { (expression_statement "local_7c = (int *)0x0;" (assignment_expression "local_7c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_78 = (int *)0x0;" (assignment_expression "local_78 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }" statement_identifier : (if_statement "if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }" if (parenthesized_expression "(ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4]))" ( (binary_expression "ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])" (binary_expression "ppiVar11[5] != (int *)0x0" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])" (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))) < (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))))) )) (compound_statement "{\n        return 6;\n      }" { (return_statement "return 6;" return number_literal ;) }))) (expression_statement "iVar5 = (int)ppiVar11[0x24];" (assignment_expression "iVar5 = (int)ppiVar11[0x24]" identifier = (cast_expression "(int)ppiVar11[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = ppiVar11[0xd];" (assignment_expression "uVar6 = ppiVar11[0xd]" identifier = (subscript_expression "ppiVar11[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(iVar5 + -0x18) = *ppiVar11;" (assignment_expression "*(int **)(iVar5 + -0x18) = *ppiVar11" (pointer_expression "*(int **)(iVar5 + -0x18)" * (cast_expression "(int **)(iVar5 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x18)" ( (binary_expression "iVar5 + -0x18" identifier + number_literal) )))) = (pointer_expression "*ppiVar11" * identifier)) ;) (expression_statement "uVar1 = ppiVar11[1];" (assignment_expression "uVar1 = ppiVar11[1]" identifier = (subscript_expression "ppiVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar5 + -8) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + -8) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + -8)" * (cast_expression "(undefined4 *)(iVar5 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -8)" ( (binary_expression "iVar5 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + -0x14) = uVar1;" (assignment_expression "*(undefined4 *)(iVar5 + -0x14) = uVar1" (pointer_expression "*(undefined4 *)(iVar5 + -0x14)" * (cast_expression "(undefined4 *)(iVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x14)" ( (binary_expression "iVar5 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(iVar5 + -0x10) = ppiVar11[7];" (assignment_expression "*(int **)(iVar5 + -0x10) = ppiVar11[7]" (pointer_expression "*(int **)(iVar5 + -0x10)" * (cast_expression "(int **)(iVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x10)" ( (binary_expression "iVar5 + -0x10" identifier + number_literal) )))) = (subscript_expression "ppiVar11[7]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(iVar5 + -0xc) = ppiVar11[6];" (assignment_expression "*(int **)(iVar5 + -0xc) = ppiVar11[6]" (pointer_expression "*(int **)(iVar5 + -0xc)" * (cast_expression "(int **)(iVar5 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0xc)" ( (binary_expression "iVar5 + -0xc" identifier + number_literal) )))) = (subscript_expression "ppiVar11[6]" identifier [ number_literal ])) ;) (return_statement "return 6;" return number_literal ;) })) (if_statement "if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }" if (parenthesized_expression "(((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)))" ( (binary_expression "((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" (parenthesized_expression "((param_2 & 8) != 0)" ( (binary_expression "(param_2 & 8) != 0" (parenthesized_expression "(param_2 & 8)" ( (binary_expression "param_2 & 8" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" ( (comma_expression "unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (assignment_expression "unaff_EBP = local_68" identifier = identifier) , (binary_expression "local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "-local_68 < (uint)(1 < local_6c)" (unary_expression "-local_68" - identifier) < (call_expression "(uint)(1 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < local_6c)" ( (binary_expression "1 < local_6c" number_literal < identifier) )))))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }" { comment (expression_statement "puStack_80 = &UNK_0017f928;" (assignment_expression "puStack_80 = &UNK_0017f928" identifier = (pointer_expression "&UNK_0017f928" & identifier)) ;) (expression_statement "FUN_0017f140();" (call_expression "FUN_0017f140()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "ppiVar11 = &local_8c;" (assignment_expression "ppiVar11 = &local_8c" identifier = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "local_8c = param_5;" (assignment_expression "local_8c = param_5" identifier = identifier) ;) (expression_statement "FUN_00180050();" (call_expression "FUN_00180050()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }" statement_identifier : (if_statement "if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }" if (parenthesized_expression "(ppiVar11[0x11] == (int *)0x0)" ( (binary_expression "ppiVar11[0x11] == (int *)0x0" (subscript_expression "ppiVar11[0x11]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) }))) (expression_statement "uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];" (assignment_expression "uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13]" identifier = (binary_expression "(int)ppiVar11[0x11] + (int)ppiVar11[0x13]" (cast_expression "(int)ppiVar11[0x11]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x11]" identifier [ number_literal ])) + (cast_expression "(int)ppiVar11[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x13]" identifier [ number_literal ])))) ;) (expression_statement "ppiVar11[6] = (int *)uVar4;" (assignment_expression "ppiVar11[6] = (int *)uVar4" (subscript_expression "ppiVar11[6]" identifier [ number_literal ]) = (cast_expression "(int *)uVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" if (parenthesized_expression "(unaff_EBP != 0)" ( (binary_expression "unaff_EBP != 0" identifier != number_literal) )) (compound_statement "{\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" { (expression_statement "ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);" (assignment_expression "ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" (subscript_expression "ppiVar11[1]" identifier [ number_literal ]) = (cast_expression "(int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" ( (binary_expression "((int)ppiVar11[0x16] - 1U) + unaff_EBP" (parenthesized_expression "((int)ppiVar11[0x16] - 1U)" ( (binary_expression "(int)ppiVar11[0x16] - 1U" (cast_expression "(int)ppiVar11[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x16]" identifier [ number_literal ])) - number_literal) )) + identifier) )))) ;) (if_statement "if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }" if (parenthesized_expression "(ppiVar11[6] == (int *)0x0)" ( (binary_expression "ppiVar11[6] == (int *)0x0" (subscript_expression "ppiVar11[6]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 8;\n    }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }" if (parenthesized_expression "(ppiVar11[1] != (int *)0x0)" ( (binary_expression "ppiVar11[1] != (int *)0x0" (subscript_expression "ppiVar11[1]" identifier [ number_literal ]) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }" { (expression_statement "ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);" (assignment_expression "ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8)" (subscript_expression "ppiVar11[10]" identifier [ number_literal ]) = (cast_expression "(int *)((uint)ppiVar11[0x21] & 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) == 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 8) == 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }" { (expression_statement "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);" (assignment_expression "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4)" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int *)((int)ppiVar11[2] - 0x30e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11[2] - 0x30e4)" ( (binary_expression "(int)ppiVar11[2] - 0x30e4" (cast_expression "(int)ppiVar11[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[2]" identifier [ number_literal ])) - number_literal) )))) ;) (if_statement "if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }" if (parenthesized_expression "(ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" ( (binary_expression "ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (binary_expression "ppiVar11[5] == (int *)0x0" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))))) )) (compound_statement "{\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }" { (expression_statement "uVar4 = (int)ppiVar11[0x24] + 0x20;" (assignment_expression "uVar4 = (int)ppiVar11[0x24] + 0x20" identifier = (binary_expression "(int)ppiVar11[0x24] + 0x20" (cast_expression "(int)ppiVar11[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ])) + number_literal)) ;) (if_statement "if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }" if (parenthesized_expression "((*(byte *)ppiVar11[0x24] & 1) != 0)" ( (binary_expression "(*(byte *)ppiVar11[0x24] & 1) != 0" (parenthesized_expression "(*(byte *)ppiVar11[0x24] & 1)" ( (binary_expression "*(byte *)ppiVar11[0x24] & 1" (pointer_expression "*(byte *)ppiVar11[0x24]" * (cast_expression "(byte *)ppiVar11[0x24]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ]))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }" { (expression_statement "uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);" (assignment_expression "uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30)" identifier = (pointer_expression "*(uint *)((int)ppiVar11[0x24] + -0x30)" * (cast_expression "(uint *)((int)ppiVar11[0x24] + -0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11[0x24] + -0x30)" ( (binary_expression "(int)ppiVar11[0x24] + -0x30" (cast_expression "(int)ppiVar11[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ])) + number_literal) ))))) ;) })) (expression_statement "ppiVar11[0xd] = (int *)uVar4;" (assignment_expression "ppiVar11[0xd] = (int *)uVar4" (subscript_expression "ppiVar11[0xd]" identifier [ number_literal ]) = (cast_expression "(int *)uVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);" (assignment_expression "ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50)" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int *)*(uint *)(uVar4 - 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(uint *)(uVar4 - 0x50)" * (cast_expression "(uint *)(uVar4 - 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 - 0x50)" ( (binary_expression "uVar4 - 0x50" identifier - number_literal) )))))) ;) })) }) (else_clause "else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" else (compound_statement "{\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" { (expression_statement "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);" (assignment_expression "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec)" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int *)((int)ppiVar11[2] - 0x30ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11[2] - 0x30ec)" ( (binary_expression "(int)ppiVar11[2] - 0x30ec" (cast_expression "(int)ppiVar11[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[2]" identifier [ number_literal ])) - number_literal) )))) ;) }))) (do_statement "do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );" do (compound_statement "{\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)ppiVar11[1];" (assignment_expression "pbVar9 = (byte *)ppiVar11[1]" identifier = (cast_expression "(byte *)ppiVar11[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar11[1]" identifier [ number_literal ]))) ;) (do_statement "do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');" do (compound_statement "{\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        }" { (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "bVar7 = (byte)uVar4;" (assignment_expression "bVar7 = (byte)uVar4" identifier = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = uVar4 + 7;" (assignment_expression "uVar4 = uVar4 + 7" identifier = (binary_expression "uVar4 + 7" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);" (assignment_expression "uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier = (binary_expression "uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier | (binary_expression "(bVar13 & 0x7f) << (bVar7 & 0x1f)" (parenthesized_expression "(bVar13 & 0x7f)" ( (binary_expression "bVar13 & 0x7f" identifier & number_literal) )) << (parenthesized_expression "(bVar7 & 0x1f)" ( (binary_expression "bVar7 & 0x1f" identifier & number_literal) ))))) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "((char)bVar13 < '\0')" ( (binary_expression "(char)bVar13 < '\0'" (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }" if (parenthesized_expression "((uVar4 < 0x20) && ((bVar13 & 0x40) != 0))" ( (binary_expression "(uVar4 < 0x20) && ((bVar13 & 0x40) != 0)" (parenthesized_expression "(uVar4 < 0x20)" ( (binary_expression "uVar4 < 0x20" identifier < number_literal) )) && (parenthesized_expression "((bVar13 & 0x40) != 0)" ( (binary_expression "(bVar13 & 0x40) != 0" (parenthesized_expression "(bVar13 & 0x40)" ( (binary_expression "bVar13 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }" { (expression_statement "uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));" (assignment_expression "uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f))" identifier = (binary_expression "uVar12 | -(1 << ((byte)uVar4 & 0x1f))" identifier | (unary_expression "-(1 << ((byte)uVar4 & 0x1f))" - (parenthesized_expression "(1 << ((byte)uVar4 & 0x1f))" ( (binary_expression "1 << ((byte)uVar4 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar4 & 0x1f)" ( (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (expression_statement "*ppiVar11 = (int *)uVar12;" (assignment_expression "*ppiVar11 = (int *)uVar12" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)uVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');" do (compound_statement "{\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        }" { (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar7 = (byte)uVar8;" (assignment_expression "bVar7 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = uVar8 + 7;" (assignment_expression "uVar8 = uVar8 + 7" identifier = (binary_expression "uVar8 + 7" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);" (assignment_expression "uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier = (binary_expression "uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier | (binary_expression "(bVar13 & 0x7f) << (bVar7 & 0x1f)" (parenthesized_expression "(bVar13 & 0x7f)" ( (binary_expression "bVar13 & 0x7f" identifier & number_literal) )) << (parenthesized_expression "(bVar7 & 0x1f)" ( (binary_expression "bVar7 & 0x1f" identifier & number_literal) ))))) ;) }) while (parenthesized_expression "((char)bVar13 < '\0')" ( (binary_expression "(char)bVar13 < '\0'" (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }" if (parenthesized_expression "((uVar8 < 0x20) && ((bVar13 & 0x40) != 0))" ( (binary_expression "(uVar8 < 0x20) && ((bVar13 & 0x40) != 0)" (parenthesized_expression "(uVar8 < 0x20)" ( (binary_expression "uVar8 < 0x20" identifier < number_literal) )) && (parenthesized_expression "((bVar13 & 0x40) != 0)" ( (binary_expression "(bVar13 & 0x40) != 0" (parenthesized_expression "(bVar13 & 0x40)" ( (binary_expression "bVar13 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }" { (expression_statement "uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));" (assignment_expression "uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f))" identifier = (binary_expression "uVar4 | -(1 << ((byte)uVar8 & 0x1f))" identifier | (unary_expression "-(1 << ((byte)uVar8 & 0x1f))" - (parenthesized_expression "(1 << ((byte)uVar8 & 0x1f))" ( (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (if_statement "if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }" { (expression_statement "*(undefined1 *)((int)ppiVar11 + 0xf) = 1;" (assignment_expression "*(undefined1 *)((int)ppiVar11 + 0xf) = 1" (pointer_expression "*(undefined1 *)((int)ppiVar11 + 0xf)" * (cast_expression "(undefined1 *)((int)ppiVar11 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11 + 0xf)" ( (binary_expression "(int)ppiVar11 + 0xf" (cast_expression "(int)ppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" else (compound_statement "{\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" { (if_statement "if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" if (parenthesized_expression "((int)uVar12 < 1)" ( (binary_expression "(int)uVar12 < 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }" { (if_statement "if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;" if (parenthesized_expression "(((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0))" ( (binary_expression "((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)" (parenthesized_expression "((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0)" ( (binary_expression "(*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0" (parenthesized_expression "(*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0)" ( (binary_expression "*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0" (pointer_expression "*(byte *)((int)ppiVar11 + 0xe)" * (cast_expression "(byte *)((int)ppiVar11 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11 + 0xe)" ( (binary_expression "(int)ppiVar11 + 0xe" (cast_expression "(int)ppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & (binary_expression "ppiVar11[10] == (int *)0x0" (subscript_expression "ppiVar11[10]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) != number_literal) )) && (parenthesized_expression "(ppiVar11[9] != (int *)0x0)" ( (binary_expression "ppiVar11[9] != (int *)0x0" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0017fba0;" goto statement_identifier ;)) (expression_statement "ppiVar11[0xb] = (int *)uVar4;" (assignment_expression "ppiVar11[0xb] = (int *)uVar4" (subscript_expression "ppiVar11[0xb]" identifier [ number_literal ]) = (cast_expression "(int *)uVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);" (assignment_expression "pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15])" identifier = (cast_expression "(byte *)(~uVar12 + (int)ppiVar11[0x15])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~uVar12 + (int)ppiVar11[0x15])" ( (binary_expression "~uVar12 + (int)ppiVar11[0x15]" (unary_expression "~uVar12" ~ identifier) + (cast_expression "(int)ppiVar11[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x15]" identifier [ number_literal ]))) )))) ;) (do_statement "do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');" do (compound_statement "{\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            }" { (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "bVar3 = bVar13 & 0x1f;" (assignment_expression "bVar3 = bVar13 & 0x1f" identifier = (binary_expression "bVar13 & 0x1f" identifier & number_literal)) ;) (expression_statement "bVar13 = bVar13 + 7;" (assignment_expression "bVar13 = bVar13 + 7" identifier = (binary_expression "bVar13 + 7" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;" (assignment_expression "uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3" identifier = (binary_expression "uVar8 | (bVar7 & 0x7f) << bVar3" identifier | (binary_expression "(bVar7 & 0x7f) << bVar3" (parenthesized_expression "(bVar7 & 0x7f)" ( (binary_expression "bVar7 & 0x7f" identifier & number_literal) )) << identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((char)bVar7 < '\0')" ( (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar4 = (uint)ppiVar11[0xb];" (assignment_expression "uVar4 = (uint)ppiVar11[0xb]" identifier = (cast_expression "(uint)ppiVar11[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0xb]" identifier [ number_literal ]))) ;) (expression_statement "bVar13 = uVar8 == 0;" (assignment_expression "bVar13 = uVar8 == 0" identifier = (binary_expression "uVar8 == 0" identifier == number_literal)) ;) }) (else_clause "else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" else (compound_statement "{\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" { (expression_statement "ppiVar11[-1] = (int *)0x17fb42;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb42" (subscript_expression "ppiVar11[-1]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fb42" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = FUN_0017f380();" (assignment_expression "iVar5 = FUN_0017f380()" identifier = (call_expression "FUN_0017f380()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0017fb5b;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017fb5b;" goto statement_identifier ;)) (if_statement "if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;" if (parenthesized_expression "(ppiVar11[9] == (int *)0x0)" ( (binary_expression "ppiVar11[9] == (int *)0x0" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0017fb18;" goto statement_identifier ;)) (expression_statement "ppiVar11[-1] = (int *)0x17fb57;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb57" (subscript_expression "ppiVar11[-1]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fb57" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = FUN_0017f1e0();" (assignment_expression "bVar13 = FUN_0017f1e0()" identifier = (call_expression "FUN_0017f1e0()" identifier (argument_list "()" ( )))) ;) }))) (for_statement "for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }" for ( ; (binary_expression "bVar13 != 0" identifier != number_literal) ; (assignment_expression "bVar13 = bVar13 ^ 1" identifier = (binary_expression "bVar13 ^ 1" identifier ^ number_literal)) ) (compound_statement "{\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }" { (labeled_statement "LAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;" statement_identifier : (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0017f86c;" goto statement_identifier ;))) (if_statement "if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;" if (parenthesized_expression "((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))" ( (binary_expression "(ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4)" (parenthesized_expression "(ppiVar11[10] == (int *)0x0)" ( (binary_expression "ppiVar11[10] == (int *)0x0" (subscript_expression "ppiVar11[10]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4)" ( (comma_expression "uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (assignment_expression "uVar4 = (uint)ppiVar11[5]" identifier = (cast_expression "(uint)ppiVar11[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))) , (binary_expression "uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (binary_expression "uVar4 <= ppiVar11[10]" identifier <= (subscript_expression "ppiVar11[10]" identifier [ number_literal ])) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (binary_expression "(int)ppiVar11[10] - uVar4" (cast_expression "(int)ppiVar11[10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[10]" identifier [ number_literal ])) - identifier)))) ))) )) (goto_statement "goto LAB_0017f6a2;" goto statement_identifier ;)) (if_statement "if (-1 < (int)uVar12) goto LAB_0017f6ad;" if (parenthesized_expression "(-1 < (int)uVar12)" ( (binary_expression "-1 < (int)uVar12" number_literal < (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (expression_statement "pbVar10 = (byte *)ppiVar11[2];" (assignment_expression "pbVar10 = (byte *)ppiVar11[2]" identifier = (cast_expression "(byte *)ppiVar11[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar11[2]" identifier [ number_literal ]))) ;) comment (expression_statement "ppiVar11[-1] = (int *)0x17fb9d;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb9d" (subscript_expression "ppiVar11[-1]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fb9d" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f1c0();" (call_expression "FUN_0017f1c0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;" statement_identifier : (expression_statement "ppiVar11[-4] = (int *)uVar12;" (assignment_expression "ppiVar11[-4] = (int *)uVar12" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (cast_expression "(int *)uVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppiVar11[-5] = (int *)0x17fbb1;" (assignment_expression "ppiVar11[-5] = (int *)0x17fbb1" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fbb1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = FUN_0017f410();" (assignment_expression "bVar13 = FUN_0017f410()" identifier = (call_expression "FUN_0017f410()" identifier (argument_list "()" ( )))) ;) })) }))) (labeled_statement "LAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;" statement_identifier : (if_statement "if (uVar4 == 0) goto LAB_0017fbbc;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017fbbc;" goto statement_identifier ;))) (expression_statement "ppiVar11[1] = (int *)(pbVar10 + uVar4);" (assignment_expression "ppiVar11[1] = (int *)(pbVar10 + uVar4)" (subscript_expression "ppiVar11[1]" identifier [ number_literal ]) = (cast_expression "(int *)(pbVar10 + uVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + uVar4)" ( (binary_expression "pbVar10 + uVar4" identifier + identifier) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0017fbc7;" goto statement_identifier ;) })) (if_statement "if (uVar4 == 0) {\n    return 8;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (expression_statement "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);" (assignment_expression "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8)" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)((uint)ppiVar11[0x21] & 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;" if (parenthesized_expression "((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))" ( (binary_expression "(((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) == 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 8) == 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" ( (binary_expression "ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (binary_expression "ppiVar11[5] == (int *)0x0" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (goto_statement "goto LAB_0017f974;" goto statement_identifier ;) (labeled_statement "LAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }" statement_identifier : (if_statement "if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }" if (parenthesized_expression "(*(char *)((int)ppiVar11 + 0xf) == '\0')" ( (binary_expression "*(char *)((int)ppiVar11 + 0xf) == '\0'" (pointer_expression "*(char *)((int)ppiVar11 + 0xf)" * (cast_expression "(char *)((int)ppiVar11 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11 + 0xf)" ( (binary_expression "(int)ppiVar11 + 0xf" (cast_expression "(int)ppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) }))) (labeled_statement "LAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);" statement_identifier : (expression_statement "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);" (assignment_expression "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1)" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)((uint)ppiVar11[0x21] & 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )))) ;)) (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;" if (parenthesized_expression "((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])))" ( (binary_expression "(((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))" (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 8) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) || (parenthesized_expression "(ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))" ( (binary_expression "ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])" (binary_expression "ppiVar11[5] <= *ppiVar11" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) <= (pointer_expression "*ppiVar11" * identifier)) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (call_expression "(uint)((int)*ppiVar11 - (int)ppiVar11[5])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*ppiVar11 - (int)ppiVar11[5])" ( (binary_expression "(int)*ppiVar11 - (int)ppiVar11[5]" (cast_expression "(int)*ppiVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppiVar11" * identifier)) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))) ))))) ))) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (labeled_statement "LAB_0017f974:\n  *ppiVar11 = (int *)0x0;" statement_identifier : (expression_statement "*ppiVar11 = (int *)0x0;" (assignment_expression "*ppiVar11 = (int *)0x0" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];" statement_identifier : (expression_statement "ppiVar11[-2] = ppiVar11[0x24];" (assignment_expression "ppiVar11[-2] = ppiVar11[0x24]" (subscript_expression "ppiVar11[-2]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ])) ;)) (expression_statement "ppiVar11[-3] = (int *)0x0;" (assignment_expression "ppiVar11[-3] = (int *)0x0" (subscript_expression "ppiVar11[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-5] = (int *)0x17f6cb;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6cb" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17f6cb" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00217390();" (call_expression "FUN_00217390()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar11[-2] = *ppiVar11;" (assignment_expression "ppiVar11[-2] = *ppiVar11" (subscript_expression "ppiVar11[-2]" identifier [ number_literal ]) = (pointer_expression "*ppiVar11" * identifier)) ;) (expression_statement "ppiVar11[-3] = (int *)0x2;" (assignment_expression "ppiVar11[-3] = (int *)0x2" (subscript_expression "ppiVar11[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-5] = (int *)0x17f6e0;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6e0" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17f6e0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00217390();" (call_expression "FUN_00217390()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar11[-3] = ppiVar11[6];" (assignment_expression "ppiVar11[-3] = ppiVar11[6]" (subscript_expression "ppiVar11[-3]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-5] = (int *)0x17f6f2;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6f2" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17f6f2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00217420();" (call_expression "FUN_00217420()" identifier (argument_list "()" ( ))) ;) (return_statement "return 7;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nundefined4\n__gxx_personality_v0\n          (int param_1,uint param_2,uint param_3,int param_4,int param_5,_Unwind_Context *param_6)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uchar uVar4;\n  uchar *puVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  type_info *ptVar9;\n  byte bVar10;\n  uint uVar11;\n  byte *pbVar12;\n  type_info *extraout_EDX;\n  byte *pbVar13;\n  uint **ppuVar14;\n  uint unaff_EBP;\n  uint uVar15;\n  byte bVar16;\n  uint *local_7c;\n  uint *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  uchar *local_60;\n  lsda_header_info *local_5c;\n  undefined4 local_48;\n  int local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  uchar local_20;\n  uchar local_1f;\n  \n  ppuVar14 = &local_7c;\n  local_74 = &_GLOBAL_OFFSET_TABLE_;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = *(int *)(param_5 + -0xc);\n    if (*(int *)(param_5 + -0xc) != 0) {\n      local_7c = *(uint **)(param_5 + -0x18);\n      local_60 = *(uchar **)(param_5 + -0x10);\nLAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_60 = (uchar *)_Unwind_GetLanguageSpecificData();\n    ppuVar14 = &local_7c;\n    if (local_60 == (uchar *)0x0) {\n      return 8;\n    }\n    local_5c = (lsda_header_info *)local_34;\n    pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);\n    local_2c = base_of_encoded_value(local_20,param_6);\n    iVar7 = _Unwind_GetIPInfo();\n    uVar6 = iVar7 - (uint)(local_44 == 0);\n    if (pbVar12 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }\n    ppuVar14 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }\n  }\n  ppuVar14 = (uint **)&stack0xffffff74;\n  __cxa_call_terminate();\nLAB_0017f8ce:\n  if (ppuVar14[0x11] == (uint *)0x0) {\n    return 8;\n  }\n  uVar6 = (int)ppuVar14[0x11] + (int)ppuVar14[0x13];\n  ppuVar14[6] = (uint *)uVar6;\n  if (unaff_EBP != 0) {\n    ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP);\n    if (ppuVar14[6] == (uint *)0x0) {\n      return 8;\n    }\n    if (ppuVar14[1] != (uint *)0x0) {\n      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);\n      if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }\n      do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar6 == 0) {\n    return 8;\n  }\n  if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 8);\n  if ((((uint)ppuVar14[0x21] & 8) == 0) &&\n     (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppuVar14 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 1);\n  if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppuVar14[0x21] & 8) != 0) ||\n     (ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppuVar14 = (uint *)0x0;\nLAB_0017f6ad:\n  ppuVar14[-2] = ppuVar14[0x24];\n  ppuVar14[-3] = (uint *)0x0;\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6cb;\n  _Unwind_SetGR();\n  ppuVar14[-2] = *ppuVar14;\n  ppuVar14[-3] = (uint *)0x2;\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6e0;\n  _Unwind_SetGR();\n  ppuVar14[-3] = ppuVar14[6];\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6f2;\n  _Unwind_SetIP();\n  return 7;\n}\n\n" comment (function_definition "undefined4\n__gxx_personality_v0\n          (int param_1,uint param_2,uint param_3,int param_4,int param_5,_Unwind_Context *param_6)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uchar uVar4;\n  uchar *puVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  type_info *ptVar9;\n  byte bVar10;\n  uint uVar11;\n  byte *pbVar12;\n  type_info *extraout_EDX;\n  byte *pbVar13;\n  uint **ppuVar14;\n  uint unaff_EBP;\n  uint uVar15;\n  byte bVar16;\n  uint *local_7c;\n  uint *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  uchar *local_60;\n  lsda_header_info *local_5c;\n  undefined4 local_48;\n  int local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  uchar local_20;\n  uchar local_1f;\n  \n  ppuVar14 = &local_7c;\n  local_74 = &_GLOBAL_OFFSET_TABLE_;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = *(int *)(param_5 + -0xc);\n    if (*(int *)(param_5 + -0xc) != 0) {\n      local_7c = *(uint **)(param_5 + -0x18);\n      local_60 = *(uchar **)(param_5 + -0x10);\nLAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_60 = (uchar *)_Unwind_GetLanguageSpecificData();\n    ppuVar14 = &local_7c;\n    if (local_60 == (uchar *)0x0) {\n      return 8;\n    }\n    local_5c = (lsda_header_info *)local_34;\n    pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);\n    local_2c = base_of_encoded_value(local_20,param_6);\n    iVar7 = _Unwind_GetIPInfo();\n    uVar6 = iVar7 - (uint)(local_44 == 0);\n    if (pbVar12 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }\n    ppuVar14 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }\n  }\n  ppuVar14 = (uint **)&stack0xffffff74;\n  __cxa_call_terminate();\nLAB_0017f8ce:\n  if (ppuVar14[0x11] == (uint *)0x0) {\n    return 8;\n  }\n  uVar6 = (int)ppuVar14[0x11] + (int)ppuVar14[0x13];\n  ppuVar14[6] = (uint *)uVar6;\n  if (unaff_EBP != 0) {\n    ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP);\n    if (ppuVar14[6] == (uint *)0x0) {\n      return 8;\n    }\n    if (ppuVar14[1] != (uint *)0x0) {\n      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);\n      if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }\n      do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar6 == 0) {\n    return 8;\n  }\n  if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 8);\n  if ((((uint)ppuVar14[0x21] & 8) == 0) &&\n     (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppuVar14 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 1);\n  if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppuVar14[0x21] & 8) != 0) ||\n     (ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppuVar14 = (uint *)0x0;\nLAB_0017f6ad:\n  ppuVar14[-2] = ppuVar14[0x24];\n  ppuVar14[-3] = (uint *)0x0;\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6cb;\n  _Unwind_SetGR();\n  ppuVar14[-2] = *ppuVar14;\n  ppuVar14[-3] = (uint *)0x2;\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6e0;\n  _Unwind_SetGR();\n  ppuVar14[-3] = ppuVar14[6];\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6f2;\n  _Unwind_SetIP();\n  return 7;\n}" type_identifier (function_declarator "__gxx_personality_v0\n          (int param_1,uint param_2,uint param_3,int param_4,int param_5,_Unwind_Context *param_6)" identifier (parameter_list "(int param_1,uint param_2,uint param_3,int param_4,int param_5,_Unwind_Context *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "_Unwind_Context *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uchar uVar4;\n  uchar *puVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  type_info *ptVar9;\n  byte bVar10;\n  uint uVar11;\n  byte *pbVar12;\n  type_info *extraout_EDX;\n  byte *pbVar13;\n  uint **ppuVar14;\n  uint unaff_EBP;\n  uint uVar15;\n  byte bVar16;\n  uint *local_7c;\n  uint *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  uchar *local_60;\n  lsda_header_info *local_5c;\n  undefined4 local_48;\n  int local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  uchar local_20;\n  uchar local_1f;\n  \n  ppuVar14 = &local_7c;\n  local_74 = &_GLOBAL_OFFSET_TABLE_;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = *(int *)(param_5 + -0xc);\n    if (*(int *)(param_5 + -0xc) != 0) {\n      local_7c = *(uint **)(param_5 + -0x18);\n      local_60 = *(uchar **)(param_5 + -0x10);\nLAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_60 = (uchar *)_Unwind_GetLanguageSpecificData();\n    ppuVar14 = &local_7c;\n    if (local_60 == (uchar *)0x0) {\n      return 8;\n    }\n    local_5c = (lsda_header_info *)local_34;\n    pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);\n    local_2c = base_of_encoded_value(local_20,param_6);\n    iVar7 = _Unwind_GetIPInfo();\n    uVar6 = iVar7 - (uint)(local_44 == 0);\n    if (pbVar12 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }\n    ppuVar14 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }\n  }\n  ppuVar14 = (uint **)&stack0xffffff74;\n  __cxa_call_terminate();\nLAB_0017f8ce:\n  if (ppuVar14[0x11] == (uint *)0x0) {\n    return 8;\n  }\n  uVar6 = (int)ppuVar14[0x11] + (int)ppuVar14[0x13];\n  ppuVar14[6] = (uint *)uVar6;\n  if (unaff_EBP != 0) {\n    ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP);\n    if (ppuVar14[6] == (uint *)0x0) {\n      return 8;\n    }\n    if (ppuVar14[1] != (uint *)0x0) {\n      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);\n      if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }\n      do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar6 == 0) {\n    return 8;\n  }\n  if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 8);\n  if ((((uint)ppuVar14[0x21] & 8) == 0) &&\n     (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppuVar14 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 1);\n  if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppuVar14[0x21] & 8) != 0) ||\n     (ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppuVar14 = (uint *)0x0;\nLAB_0017f6ad:\n  ppuVar14[-2] = ppuVar14[0x24];\n  ppuVar14[-3] = (uint *)0x0;\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6cb;\n  _Unwind_SetGR();\n  ppuVar14[-2] = *ppuVar14;\n  ppuVar14[-3] = (uint *)0x2;\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6e0;\n  _Unwind_SetGR();\n  ppuVar14[-3] = ppuVar14[6];\n  ppuVar14[-4] = ppuVar14[0x25];\n  ppuVar14[-5] = (uint *)0x17f6f2;\n  _Unwind_SetIP();\n  return 7;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uchar uVar4;" type_identifier identifier ;) (declaration "uchar *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "type_info *ptVar9;" type_identifier (pointer_declarator "*ptVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "type_info *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "uint **ppuVar14;" type_identifier (pointer_declarator "**ppuVar14" * (pointer_declarator "*ppuVar14" * identifier)) ;) (declaration "uint unaff_EBP;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "uint *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "bool bStack_6e;" primitive_type identifier ;) (declaration "bool bStack_6d;" primitive_type identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uchar *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "lsda_header_info *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "int local_34 [2];" primitive_type (array_declarator "local_34 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "uchar local_20;" type_identifier identifier ;) (declaration "uchar local_1f;" type_identifier identifier ;) (expression_statement "ppuVar14 = &local_7c;" (assignment_expression "ppuVar14 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "local_74 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_74 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (param_1 != 1) {\n    return 3;\n  }" if (parenthesized_expression "(param_1 != 1)" ( (binary_expression "param_1 != 1" identifier != number_literal) )) (compound_statement "{\n    return 3;\n  }" { (return_statement "return 3;" return number_literal ;) })) (expression_statement "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);" (assignment_expression "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" identifier = (binary_expression "param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" (binary_expression "param_4 + -0x474e5544" identifier + number_literal) + (call_expression "(uint)(0x432b2aff < param_3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x432b2aff < param_3)" ( (binary_expression "0x432b2aff < param_3" number_literal < identifier) ))))) ;) (expression_statement "local_6c = param_3 + 0xbcd4d500;" (assignment_expression "local_6c = param_3 + 0xbcd4d500" identifier = (binary_expression "param_3 + 0xbcd4d500" identifier + number_literal)) ;) (expression_statement "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;" (assignment_expression "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68" identifier = (binary_expression "(uint)(1 < param_3 + 0xbcd4d500) <= -local_68" (call_expression "(uint)(1 < param_3 + 0xbcd4d500)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < param_3 + 0xbcd4d500)" ( (binary_expression "1 < param_3 + 0xbcd4d500" number_literal < (binary_expression "param_3 + 0xbcd4d500" identifier + number_literal)) ))) <= (unary_expression "-local_68" - identifier))) ;) (expression_statement "bStack_6e = local_68 == 0 && bVar2;" (assignment_expression "bStack_6e = local_68 == 0 && bVar2" identifier = (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" identifier == number_literal) && identifier)) ;) (expression_statement "bStack_6d = param_2 == 6 && bStack_6e;" (assignment_expression "bStack_6d = param_2 == 6 && bStack_6e" identifier = (binary_expression "param_2 == 6 && bStack_6e" (binary_expression "param_2 == 6" identifier == number_literal) && identifier)) ;) (if_statement "if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = *(int *)(param_5 + -0xc);\n    if (*(int *)(param_5 + -0xc) != 0) {\n      local_7c = *(uint **)(param_5 + -0x18);\n      local_60 = *(uchar **)(param_5 + -0x10);\nLAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_60 = (uchar *)_Unwind_GetLanguageSpecificData();\n    ppuVar14 = &local_7c;\n    if (local_60 == (uchar *)0x0) {\n      return 8;\n    }\n    local_5c = (lsda_header_info *)local_34;\n    pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);\n    local_2c = base_of_encoded_value(local_20,param_6);\n    iVar7 = _Unwind_GetIPInfo();\n    uVar6 = iVar7 - (uint)(local_44 == 0);\n    if (pbVar12 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }\n    ppuVar14 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }\n  }" if (parenthesized_expression "(param_2 == 6 && (local_68 == 0 && bVar2))" ( (binary_expression "param_2 == 6 && (local_68 == 0 && bVar2)" (binary_expression "param_2 == 6" identifier == number_literal) && (parenthesized_expression "(local_68 == 0 && bVar2)" ( (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" identifier == number_literal) && identifier) ))) )) (compound_statement "{\n    local_64 = *(int *)(param_5 + -0xc);\n    if (*(int *)(param_5 + -0xc) != 0) {\n      local_7c = *(uint **)(param_5 + -0x18);\n      local_60 = *(uchar **)(param_5 + -0x10);\nLAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }\n      goto LAB_0017f6ad;\n    }\n  }" { (expression_statement "local_64 = *(int *)(param_5 + -0xc);" (assignment_expression "local_64 = *(int *)(param_5 + -0xc)" identifier = (pointer_expression "*(int *)(param_5 + -0xc)" * (cast_expression "(int *)(param_5 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + -0xc)" ( (binary_expression "param_5 + -0xc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_5 + -0xc) != 0) {\n      local_7c = *(uint **)(param_5 + -0x18);\n      local_60 = *(uchar **)(param_5 + -0x10);\nLAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }\n      goto LAB_0017f6ad;\n    }" if (parenthesized_expression "(*(int *)(param_5 + -0xc) != 0)" ( (binary_expression "*(int *)(param_5 + -0xc) != 0" (pointer_expression "*(int *)(param_5 + -0xc)" * (cast_expression "(int *)(param_5 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + -0xc)" ( (binary_expression "param_5 + -0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      local_7c = *(uint **)(param_5 + -0x18);\n      local_60 = *(uchar **)(param_5 + -0x10);\nLAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }\n      goto LAB_0017f6ad;\n    }" { (expression_statement "local_7c = *(uint **)(param_5 + -0x18);" (assignment_expression "local_7c = *(uint **)(param_5 + -0x18)" identifier = (pointer_expression "*(uint **)(param_5 + -0x18)" * (cast_expression "(uint **)(param_5 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + -0x18)" ( (binary_expression "param_5 + -0x18" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(uchar **)(param_5 + -0x10);" (assignment_expression "local_60 = *(uchar **)(param_5 + -0x10)" identifier = (pointer_expression "*(uchar **)(param_5 + -0x10)" * (cast_expression "(uchar **)(param_5 + -0x10)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + -0x10)" ( (binary_expression "param_5 + -0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0017f6a2:\n      if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }" statement_identifier : (if_statement "if ((int)*ppuVar14 < 0) {\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }" if (parenthesized_expression "((int)*ppuVar14 < 0)" ( (binary_expression "(int)*ppuVar14 < 0" (cast_expression "(int)*ppuVar14" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar14" * identifier)) < number_literal) )) (compound_statement "{\n        ((int *)ppuVar14)[-1] = 0x17f994;\n        parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));\n        ((int *)ppuVar14)[-1] = 0x17f9a5;\n        iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        ((int *)ppuVar14)[0x14] = iVar7;\n        ((int *)ppuVar14)[-1] = 0x17f9ba;\n        uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );\n        *(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;\n      }" { (expression_statement "((int *)ppuVar14)[-1] = 0x17f994;" (assignment_expression "((int *)ppuVar14)[-1] = 0x17f994" (subscript_expression "((int *)ppuVar14)[-1]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12));" (call_expression "parse_lsda_header((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12))" identifier (argument_list "((_Unwind_Context *)((int *)ppuVar14)[0x25],(uchar *)((int *)ppuVar14)[7],\n                          (lsda_header_info *)((int *)ppuVar14 + 0x12))" ( (cast_expression "(_Unwind_Context *)((int *)ppuVar14)[0x25]" ( (type_descriptor "_Unwind_Context *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)ppuVar14)[0x25]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) , (cast_expression "(uchar *)((int *)ppuVar14)[7]" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)ppuVar14)[7]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) , (cast_expression "(lsda_header_info *)((int *)ppuVar14 + 0x12)" ( (type_descriptor "lsda_header_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int *)ppuVar14 + 0x12)" ( (binary_expression "(int *)ppuVar14 + 0x12" (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) ))) ))) ;) (expression_statement "((int *)ppuVar14)[-1] = 0x17f9a5;" (assignment_expression "((int *)ppuVar14)[-1] = 0x17f9a5" (subscript_expression "((int *)ppuVar14)[-1]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );" (assignment_expression "iVar7 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          )" identifier = (call_expression "base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          )" identifier (argument_list "((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          )" ( (subscript_expression "(uchar)((int *)ppuVar14)[0x17]" (call_expression "(uchar)((int *)ppuVar14)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ]) , (cast_expression "(_Unwind_Context *)((int *)ppuVar14)[0x25]" ( (type_descriptor "_Unwind_Context *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)ppuVar14)[0x25]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )))) ;) (expression_statement "((int *)ppuVar14)[0x14] = iVar7;" (assignment_expression "((int *)ppuVar14)[0x14] = iVar7" (subscript_expression "((int *)ppuVar14)[0x14]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "((int *)ppuVar14)[-1] = 0x17f9ba;" (assignment_expression "((int *)ppuVar14)[-1] = 0x17f9ba" (subscript_expression "((int *)ppuVar14)[-1]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          );" (assignment_expression "uVar8 = base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          )" identifier = (call_expression "base_of_encoded_value\n                          ((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          )" identifier (argument_list "((uchar)((int *)ppuVar14)[0x17],(_Unwind_Context *)((int *)ppuVar14)[0x25]\n                          )" ( (subscript_expression "(uchar)((int *)ppuVar14)[0x17]" (call_expression "(uchar)((int *)ppuVar14)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ]) , (cast_expression "(_Unwind_Context *)((int *)ppuVar14)[0x25]" ( (type_descriptor "_Unwind_Context *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)ppuVar14)[0x25]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )))) ;) (expression_statement "*(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8;" (assignment_expression "*(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc) = uVar8" (pointer_expression "*(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc)" * (cast_expression "(undefined4 *)(((int *)ppuVar14)[0x24] + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)ppuVar14)[0x24] + -0xc)" ( (binary_expression "((int *)ppuVar14)[0x24] + -0xc" (subscript_expression "((int *)ppuVar14)[0x24]" (parenthesized_expression "((int *)ppuVar14)" ( (cast_expression "(int *)ppuVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) )))) = identifier) ;) }))) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_60 = (uchar *)_Unwind_GetLanguageSpecificData();\n    ppuVar14 = &local_7c;\n    if (local_60 == (uchar *)0x0) {\n      return 8;\n    }\n    local_5c = (lsda_header_info *)local_34;\n    pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);\n    local_2c = base_of_encoded_value(local_20,param_6);\n    iVar7 = _Unwind_GetIPInfo();\n    uVar6 = iVar7 - (uint)(local_44 == 0);\n    if (pbVar12 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }\n    ppuVar14 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }\n  }" else (compound_statement "{\n    local_60 = (uchar *)_Unwind_GetLanguageSpecificData();\n    ppuVar14 = &local_7c;\n    if (local_60 == (uchar *)0x0) {\n      return 8;\n    }\n    local_5c = (lsda_header_info *)local_34;\n    pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);\n    local_2c = base_of_encoded_value(local_20,param_6);\n    iVar7 = _Unwind_GetIPInfo();\n    uVar6 = iVar7 - (uint)(local_44 == 0);\n    if (pbVar12 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }\n    ppuVar14 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }\n  }" { (expression_statement "local_60 = (uchar *)_Unwind_GetLanguageSpecificData();" (assignment_expression "local_60 = (uchar *)_Unwind_GetLanguageSpecificData()" identifier = (cast_expression "(uchar *)_Unwind_GetLanguageSpecificData()" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "_Unwind_GetLanguageSpecificData()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppuVar14 = &local_7c;" (assignment_expression "ppuVar14 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (if_statement "if (local_60 == (uchar *)0x0) {\n      return 8;\n    }" if (parenthesized_expression "(local_60 == (uchar *)0x0)" ( (binary_expression "local_60 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 8;\n    }" { (return_statement "return 8;" return number_literal ;) })) (expression_statement "local_5c = (lsda_header_info *)local_34;" (assignment_expression "local_5c = (lsda_header_info *)local_34" identifier = (cast_expression "(lsda_header_info *)local_34" ( (type_descriptor "lsda_header_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c);" (assignment_expression "pbVar12 = (byte *)parse_lsda_header(param_6,local_60,local_5c)" identifier = (cast_expression "(byte *)parse_lsda_header(param_6,local_60,local_5c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "parse_lsda_header(param_6,local_60,local_5c)" identifier (argument_list "(param_6,local_60,local_5c)" ( identifier , identifier , identifier ))))) ;) (expression_statement "local_2c = base_of_encoded_value(local_20,param_6);" (assignment_expression "local_2c = base_of_encoded_value(local_20,param_6)" identifier = (call_expression "base_of_encoded_value(local_20,param_6)" identifier (argument_list "(local_20,param_6)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = _Unwind_GetIPInfo();" (assignment_expression "iVar7 = _Unwind_GetIPInfo()" identifier = (call_expression "_Unwind_GetIPInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = iVar7 - (uint)(local_44 == 0);" (assignment_expression "uVar6 = iVar7 - (uint)(local_44 == 0)" identifier = (binary_expression "iVar7 - (uint)(local_44 == 0)" identifier - (call_expression "(uint)(local_44 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) ))))) ;) (if_statement "if (pbVar12 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }" if (parenthesized_expression "(pbVar12 < local_24)" ( (binary_expression "pbVar12 < local_24" identifier < identifier) )) (compound_statement "{\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);\n    }" { (expression_statement "local_7c = &local_3c;" (assignment_expression "local_7c = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "local_78 = &local_38;" (assignment_expression "local_78 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      } while (pbVar12 < local_24);" do (compound_statement "{\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);\n        uVar4 = local_1f;\n        uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);\n        unaff_EBP = 0;\n        pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);\n        bVar16 = 0;\n        do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');\n        if (uVar6 < local_40 + local_34[0]) break;\n        if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;\n      }" { (expression_statement "uVar4 = local_1f;" (assignment_expression "uVar4 = local_1f" identifier = identifier) ;) (expression_statement "uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);" (assignment_expression "uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0)" identifier = (call_expression "base_of_encoded_value(local_1f,(_Unwind_Context *)0x0)" identifier (argument_list "(local_1f,(_Unwind_Context *)0x0)" ( identifier , (cast_expression "(_Unwind_Context *)0x0" ( (type_descriptor "_Unwind_Context *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40);" (assignment_expression "puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40)" identifier = (cast_expression "(uchar *)read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "read_encoded_value_with_base(uVar4,uVar15,pbVar12,&local_40)" identifier (argument_list "(uVar4,uVar15,pbVar12,&local_40)" ( identifier , identifier , identifier , (pointer_expression "&local_40" & identifier) ))))) ;) (expression_statement "uVar4 = local_1f;" (assignment_expression "uVar4 = local_1f" identifier = identifier) ;) (expression_statement "uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);" (assignment_expression "uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0)" identifier = (call_expression "base_of_encoded_value(local_1f,(_Unwind_Context *)0x0)" identifier (argument_list "(local_1f,(_Unwind_Context *)0x0)" ( identifier , (cast_expression "(_Unwind_Context *)0x0" ( (type_descriptor "_Unwind_Context *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c);" (assignment_expression "puVar5 = (uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c)" identifier = (cast_expression "(uchar *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "read_encoded_value_with_base(uVar4,uVar15,puVar5,local_7c)" identifier (argument_list "(uVar4,uVar15,puVar5,local_7c)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "uVar4 = local_1f;" (assignment_expression "uVar4 = local_1f" identifier = identifier) ;) (expression_statement "uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0);" (assignment_expression "uVar15 = base_of_encoded_value(local_1f,(_Unwind_Context *)0x0)" identifier = (call_expression "base_of_encoded_value(local_1f,(_Unwind_Context *)0x0)" identifier (argument_list "(local_1f,(_Unwind_Context *)0x0)" ( identifier , (cast_expression "(_Unwind_Context *)0x0" ( (type_descriptor "_Unwind_Context *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "unaff_EBP = 0;" (assignment_expression "unaff_EBP = 0" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78);" (assignment_expression "pbVar13 = (byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78)" identifier = (cast_expression "(byte *)read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "read_encoded_value_with_base(uVar4,uVar15,puVar5,local_78)" identifier (argument_list "(uVar4,uVar15,puVar5,local_78)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        } while ((char)bVar10 < '\0');" do (compound_statement "{\n          pbVar12 = pbVar13 + 1;\n          bVar10 = *pbVar13;\n          bVar3 = bVar16 & 0x1f;\n          bVar16 = bVar16 + 7;\n          unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;\n          pbVar13 = pbVar12;\n        }" { (expression_statement "pbVar12 = pbVar13 + 1;" (assignment_expression "pbVar12 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "bVar3 = bVar16 & 0x1f;" (assignment_expression "bVar3 = bVar16 & 0x1f" identifier = (binary_expression "bVar16 & 0x1f" identifier & number_literal)) ;) (expression_statement "bVar16 = bVar16 + 7;" (assignment_expression "bVar16 = bVar16 + 7" identifier = (binary_expression "bVar16 + 7" identifier + number_literal)) ;) (expression_statement "unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3;" (assignment_expression "unaff_EBP = unaff_EBP | (bVar10 & 0x7f) << bVar3" identifier = (binary_expression "unaff_EBP | (bVar10 & 0x7f) << bVar3" identifier | (binary_expression "(bVar10 & 0x7f) << bVar3" (parenthesized_expression "(bVar10 & 0x7f)" ( (binary_expression "bVar10 & 0x7f" identifier & number_literal) )) << identifier))) ;) (expression_statement "pbVar13 = pbVar12;" (assignment_expression "pbVar13 = pbVar12" identifier = identifier) ;) }) while (parenthesized_expression "((char)bVar10 < '\0')" ( (binary_expression "(char)bVar10 < '\0'" (cast_expression "(char)bVar10" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (uVar6 < local_40 + local_34[0]) break;" if (parenthesized_expression "(uVar6 < local_40 + local_34[0])" ( (binary_expression "uVar6 < local_40 + local_34[0]" identifier < (binary_expression "local_40 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ]))) )) (break_statement "break;" break ;)) (if_statement "if (uVar6 < local_40 + local_34[0] + local_3c) goto LAB_0017f8ce;" if (parenthesized_expression "(uVar6 < local_40 + local_34[0] + local_3c)" ( (binary_expression "uVar6 < local_40 + local_34[0] + local_3c" identifier < (binary_expression "local_40 + local_34[0] + local_3c" (binary_expression "local_40 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ])) + identifier)) )) (goto_statement "goto LAB_0017f8ce;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar12 < local_24)" ( (binary_expression "pbVar12 < local_24" identifier < identifier) )) ;) })) (expression_statement "ppuVar14 = &local_7c;" (assignment_expression "ppuVar14 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (if_statement "if ((param_2 & 1) != 0) {\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }" if (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_7c = (uint *)0x0;\n      local_64 = 0;\n      local_78 = (uint *)0x0;\nLAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }\n      iVar7 = (int)ppuVar14[0x24];\n      uVar8 = ppuVar14[0xd];\n      *(uint **)(iVar7 + -0x18) = *ppuVar14;\n      uVar1 = ppuVar14[1];\n      *(undefined4 *)(iVar7 + -8) = uVar8;\n      *(undefined4 *)(iVar7 + -0x14) = uVar1;\n      *(uint **)(iVar7 + -0x10) = ppuVar14[7];\n      *(uint **)(iVar7 + -0xc) = ppuVar14[6];\n      return 6;\n    }" { (expression_statement "local_7c = (uint *)0x0;" (assignment_expression "local_7c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_78 = (uint *)0x0;" (assignment_expression "local_78 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0017f86c:\n      if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }" statement_identifier : (if_statement "if (ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])) {\n        return 6;\n      }" if (parenthesized_expression "(ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4]))" ( (binary_expression "ppuVar14[5] != (uint *)0x0 || (uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])" (binary_expression "ppuVar14[5] != (uint *)0x0" (subscript_expression "ppuVar14[5]" identifier [ number_literal ]) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(uint)-(int)ppuVar14[5] < (uint)(1 < ppuVar14[4])" (binary_expression "(uint)-(int)ppuVar14[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppuVar14[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[5]" identifier [ number_literal ]))) < (call_expression "(uint)(1 < ppuVar14[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppuVar14[4])" ( (binary_expression "1 < ppuVar14[4]" number_literal < (subscript_expression "ppuVar14[4]" identifier [ number_literal ])) ))))) )) (compound_statement "{\n        return 6;\n      }" { (return_statement "return 6;" return number_literal ;) }))) (expression_statement "iVar7 = (int)ppuVar14[0x24];" (assignment_expression "iVar7 = (int)ppuVar14[0x24]" identifier = (cast_expression "(int)ppuVar14[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[0x24]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = ppuVar14[0xd];" (assignment_expression "uVar8 = ppuVar14[0xd]" identifier = (subscript_expression "ppuVar14[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(iVar7 + -0x18) = *ppuVar14;" (assignment_expression "*(uint **)(iVar7 + -0x18) = *ppuVar14" (pointer_expression "*(uint **)(iVar7 + -0x18)" * (cast_expression "(uint **)(iVar7 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x18)" ( (binary_expression "iVar7 + -0x18" identifier + number_literal) )))) = (pointer_expression "*ppuVar14" * identifier)) ;) (expression_statement "uVar1 = ppuVar14[1];" (assignment_expression "uVar1 = ppuVar14[1]" identifier = (subscript_expression "ppuVar14[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar7 + -8) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + -8) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + -8)" * (cast_expression "(undefined4 *)(iVar7 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -8)" ( (binary_expression "iVar7 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + -0x14) = uVar1;" (assignment_expression "*(undefined4 *)(iVar7 + -0x14) = uVar1" (pointer_expression "*(undefined4 *)(iVar7 + -0x14)" * (cast_expression "(undefined4 *)(iVar7 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x14)" ( (binary_expression "iVar7 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(iVar7 + -0x10) = ppuVar14[7];" (assignment_expression "*(uint **)(iVar7 + -0x10) = ppuVar14[7]" (pointer_expression "*(uint **)(iVar7 + -0x10)" * (cast_expression "(uint **)(iVar7 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x10)" ( (binary_expression "iVar7 + -0x10" identifier + number_literal) )))) = (subscript_expression "ppuVar14[7]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(iVar7 + -0xc) = ppuVar14[6];" (assignment_expression "*(uint **)(iVar7 + -0xc) = ppuVar14[6]" (pointer_expression "*(uint **)(iVar7 + -0xc)" * (cast_expression "(uint **)(iVar7 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0xc)" ( (binary_expression "iVar7 + -0xc" identifier + number_literal) )))) = (subscript_expression "ppuVar14[6]" identifier [ number_literal ])) ;) (return_statement "return 6;" return number_literal ;) })) (if_statement "if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }" if (parenthesized_expression "(((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)))" ( (binary_expression "((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" (parenthesized_expression "((param_2 & 8) != 0)" ( (binary_expression "(param_2 & 8) != 0" (parenthesized_expression "(param_2 & 8)" ( (binary_expression "param_2 & 8" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" ( (comma_expression "unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (assignment_expression "unaff_EBP = local_68" identifier = identifier) , (binary_expression "local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "-local_68 < (uint)(1 < local_6c)" (unary_expression "-local_68" - identifier) < (call_expression "(uint)(1 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < local_6c)" ( (binary_expression "1 < local_6c" number_literal < identifier) )))))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      std::terminate();\n    }" { comment (labeled_statement "std::terminate();" statement_identifier : (ERROR ":" :) (expression_statement "terminate();" (call_expression "terminate()" identifier (argument_list "()" ( ))) ;)) })) }))) (expression_statement "ppuVar14 = (uint **)&stack0xffffff74;" (assignment_expression "ppuVar14 = (uint **)&stack0xffffff74" identifier = (cast_expression "(uint **)&stack0xffffff74" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&stack0xffffff74" & identifier))) ;) (expression_statement "__cxa_call_terminate();" (call_expression "__cxa_call_terminate()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0017f8ce:\n  if (ppuVar14[0x11] == (uint *)0x0) {\n    return 8;\n  }" statement_identifier : (if_statement "if (ppuVar14[0x11] == (uint *)0x0) {\n    return 8;\n  }" if (parenthesized_expression "(ppuVar14[0x11] == (uint *)0x0)" ( (binary_expression "ppuVar14[0x11] == (uint *)0x0" (subscript_expression "ppuVar14[0x11]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) }))) (expression_statement "uVar6 = (int)ppuVar14[0x11] + (int)ppuVar14[0x13];" (assignment_expression "uVar6 = (int)ppuVar14[0x11] + (int)ppuVar14[0x13]" identifier = (binary_expression "(int)ppuVar14[0x11] + (int)ppuVar14[0x13]" (cast_expression "(int)ppuVar14[0x11]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[0x11]" identifier [ number_literal ])) + (cast_expression "(int)ppuVar14[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[0x13]" identifier [ number_literal ])))) ;) (expression_statement "ppuVar14[6] = (uint *)uVar6;" (assignment_expression "ppuVar14[6] = (uint *)uVar6" (subscript_expression "ppuVar14[6]" identifier [ number_literal ]) = (cast_expression "(uint *)uVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (unaff_EBP != 0) {\n    ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP);\n    if (ppuVar14[6] == (uint *)0x0) {\n      return 8;\n    }\n    if (ppuVar14[1] != (uint *)0x0) {\n      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);\n      if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }\n      do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" if (parenthesized_expression "(unaff_EBP != 0)" ( (binary_expression "unaff_EBP != 0" identifier != number_literal) )) (compound_statement "{\n    ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP);\n    if (ppuVar14[6] == (uint *)0x0) {\n      return 8;\n    }\n    if (ppuVar14[1] != (uint *)0x0) {\n      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);\n      if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }\n      do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" { (expression_statement "ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP);" (assignment_expression "ppuVar14[1] = (uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP)" (subscript_expression "ppuVar14[1]" identifier [ number_literal ]) = (cast_expression "(uint *)(((int)ppuVar14[0x16] - 1U) + unaff_EBP)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)ppuVar14[0x16] - 1U) + unaff_EBP)" ( (binary_expression "((int)ppuVar14[0x16] - 1U) + unaff_EBP" (parenthesized_expression "((int)ppuVar14[0x16] - 1U)" ( (binary_expression "(int)ppuVar14[0x16] - 1U" (cast_expression "(int)ppuVar14[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[0x16]" identifier [ number_literal ])) - number_literal) )) + identifier) )))) ;) (if_statement "if (ppuVar14[6] == (uint *)0x0) {\n      return 8;\n    }" if (parenthesized_expression "(ppuVar14[6] == (uint *)0x0)" ( (binary_expression "ppuVar14[6] == (uint *)0x0" (subscript_expression "ppuVar14[6]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 8;\n    }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if (ppuVar14[1] != (uint *)0x0) {\n      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);\n      if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }\n      do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );\n    }" if (parenthesized_expression "(ppuVar14[1] != (uint *)0x0)" ( (binary_expression "ppuVar14[1] != (uint *)0x0" (subscript_expression "ppuVar14[1]" identifier [ number_literal ]) != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);\n      if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }\n      do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );\n    }" { (expression_statement "ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8);" (assignment_expression "ppuVar14[10] = (uint *)((uint)ppuVar14[0x21] & 8)" (subscript_expression "ppuVar14[10]" identifier [ number_literal ]) = (cast_expression "(uint *)((uint)ppuVar14[0x21] & 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppuVar14[0x21] & 8)" ( (binary_expression "(uint)ppuVar14[0x21] & 8" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if (((uint)ppuVar14[0x21] & 8) == 0) {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }\n      else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }" if (parenthesized_expression "(((uint)ppuVar14[0x21] & 8) == 0)" ( (binary_expression "((uint)ppuVar14[0x21] & 8) == 0" (parenthesized_expression "((uint)ppuVar14[0x21] & 8)" ( (binary_expression "(uint)ppuVar14[0x21] & 8" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);\n        if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }\n      }" { (expression_statement "ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4);" (assignment_expression "ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30e4)" (subscript_expression "ppuVar14[9]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)ppuVar14[2] - 0x30e4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar14[2] - 0x30e4)" ( (binary_expression "(int)ppuVar14[2] - 0x30e4" (cast_expression "(int)ppuVar14[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[2]" identifier [ number_literal ])) - number_literal) )))) ;) (if_statement "if (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]) {\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }" if (parenthesized_expression "(ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5])" ( (binary_expression "ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]" (binary_expression "ppuVar14[5] == (uint *)0x0" (subscript_expression "ppuVar14[5]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]" (call_expression "(uint)(1 < ppuVar14[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppuVar14[4])" ( (binary_expression "1 < ppuVar14[4]" number_literal < (subscript_expression "ppuVar14[4]" identifier [ number_literal ])) ))) <= (binary_expression "(uint)-(int)ppuVar14[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppuVar14[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[5]" identifier [ number_literal ]))))) )) (compound_statement "{\n          uVar6 = (int)ppuVar14[0x24] + 0x20;\n          if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }\n          ppuVar14[0xd] = (uint *)uVar6;\n          ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);\n        }" { (expression_statement "uVar6 = (int)ppuVar14[0x24] + 0x20;" (assignment_expression "uVar6 = (int)ppuVar14[0x24] + 0x20" identifier = (binary_expression "(int)ppuVar14[0x24] + 0x20" (cast_expression "(int)ppuVar14[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[0x24]" identifier [ number_literal ])) + number_literal)) ;) (if_statement "if ((*(byte *)ppuVar14[0x24] & 1) != 0) {\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }" if (parenthesized_expression "((*(byte *)ppuVar14[0x24] & 1) != 0)" ( (binary_expression "(*(byte *)ppuVar14[0x24] & 1) != 0" (parenthesized_expression "(*(byte *)ppuVar14[0x24] & 1)" ( (binary_expression "*(byte *)ppuVar14[0x24] & 1" (pointer_expression "*(byte *)ppuVar14[0x24]" * (cast_expression "(byte *)ppuVar14[0x24]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[0x24]" identifier [ number_literal ]))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);\n          }" { (expression_statement "uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30);" (assignment_expression "uVar6 = *(uint *)((int)ppuVar14[0x24] + -0x30)" identifier = (pointer_expression "*(uint *)((int)ppuVar14[0x24] + -0x30)" * (cast_expression "(uint *)((int)ppuVar14[0x24] + -0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar14[0x24] + -0x30)" ( (binary_expression "(int)ppuVar14[0x24] + -0x30" (cast_expression "(int)ppuVar14[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[0x24]" identifier [ number_literal ])) + number_literal) ))))) ;) })) (expression_statement "ppuVar14[0xd] = (uint *)uVar6;" (assignment_expression "ppuVar14[0xd] = (uint *)uVar6" (subscript_expression "ppuVar14[0xd]" identifier [ number_literal ]) = (cast_expression "(uint *)uVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50);" (assignment_expression "ppuVar14[9] = (uint *)*(uint *)(uVar6 - 0x50)" (subscript_expression "ppuVar14[9]" identifier [ number_literal ]) = (cast_expression "(uint *)*(uint *)(uVar6 - 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(uint *)(uVar6 - 0x50)" * (cast_expression "(uint *)(uVar6 - 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 - 0x50)" ( (binary_expression "uVar6 - 0x50" identifier - number_literal) )))))) ;) })) }) (else_clause "else {\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }" else (compound_statement "{\n        ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);\n      }" { (expression_statement "ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec);" (assignment_expression "ppuVar14[9] = (uint *)((int)ppuVar14[2] - 0x30ec)" (subscript_expression "ppuVar14[9]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)ppuVar14[2] - 0x30ec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar14[2] - 0x30ec)" ( (binary_expression "(int)ppuVar14[2] - 0x30ec" (cast_expression "(int)ppuVar14[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[2]" identifier [ number_literal ])) - number_literal) )))) ;) }))) (do_statement "do {\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      } while( true );" do (compound_statement "{\n        uVar15 = 0;\n        uVar6 = 0;\n        pbVar12 = (byte *)ppuVar14[1];\n        do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');\n        if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }\n        *ppuVar14 = (uint *)uVar15;\n        uVar11 = 0;\n        uVar6 = 0;\n        do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');\n        if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }\n        if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }\nLAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;\n        ppuVar14[1] = (uint *)(pbVar13 + uVar6);\n      }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)ppuVar14[1];" (assignment_expression "pbVar12 = (byte *)ppuVar14[1]" identifier = (cast_expression "(byte *)ppuVar14[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[1]" identifier [ number_literal ]))) ;) (do_statement "do {\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        } while ((char)bVar16 < '\0');" do (compound_statement "{\n          pbVar13 = pbVar12 + 1;\n          bVar16 = *pbVar12;\n          bVar10 = (byte)uVar6;\n          uVar6 = uVar6 + 7;\n          uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n          pbVar12 = pbVar13;\n        }" { (expression_statement "pbVar13 = pbVar12 + 1;" (assignment_expression "pbVar13 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12;" (assignment_expression "bVar16 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "bVar10 = (byte)uVar6;" (assignment_expression "bVar10 = (byte)uVar6" identifier = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = uVar6 + 7;" (assignment_expression "uVar6 = uVar6 + 7" identifier = (binary_expression "uVar6 + 7" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f);" (assignment_expression "uVar15 = uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f)" identifier = (binary_expression "uVar15 | (bVar16 & 0x7f) << (bVar10 & 0x1f)" identifier | (binary_expression "(bVar16 & 0x7f) << (bVar10 & 0x1f)" (parenthesized_expression "(bVar16 & 0x7f)" ( (binary_expression "bVar16 & 0x7f" identifier & number_literal) )) << (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) ))))) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "((char)bVar16 < '\0')" ( (binary_expression "(char)bVar16 < '\0'" (cast_expression "(char)bVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((uVar6 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }" if (parenthesized_expression "((uVar6 < 0x20) && ((bVar16 & 0x40) != 0))" ( (binary_expression "(uVar6 < 0x20) && ((bVar16 & 0x40) != 0)" (parenthesized_expression "(uVar6 < 0x20)" ( (binary_expression "uVar6 < 0x20" identifier < number_literal) )) && (parenthesized_expression "((bVar16 & 0x40) != 0)" ( (binary_expression "(bVar16 & 0x40) != 0" (parenthesized_expression "(bVar16 & 0x40)" ( (binary_expression "bVar16 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));\n        }" { (expression_statement "uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f));" (assignment_expression "uVar15 = uVar15 | -(1 << ((byte)uVar6 & 0x1f))" identifier = (binary_expression "uVar15 | -(1 << ((byte)uVar6 & 0x1f))" identifier | (unary_expression "-(1 << ((byte)uVar6 & 0x1f))" - (parenthesized_expression "(1 << ((byte)uVar6 & 0x1f))" ( (binary_expression "1 << ((byte)uVar6 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar6 & 0x1f)" ( (binary_expression "(byte)uVar6 & 0x1f" (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (expression_statement "*ppuVar14 = (uint *)uVar15;" (assignment_expression "*ppuVar14 = (uint *)uVar15" (pointer_expression "*ppuVar14" * identifier) = (cast_expression "(uint *)uVar15" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        } while ((char)bVar16 < '\0');" do (compound_statement "{\n          bVar16 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n          bVar10 = (byte)uVar11;\n          uVar11 = uVar11 + 7;\n          uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);\n        }" { (expression_statement "bVar16 = *pbVar12;" (assignment_expression "bVar16 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = (byte)uVar11;" (assignment_expression "bVar10 = (byte)uVar11" identifier = (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = uVar11 + 7;" (assignment_expression "uVar11 = uVar11 + 7" identifier = (binary_expression "uVar11 + 7" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f);" (assignment_expression "uVar6 = uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f)" identifier = (binary_expression "uVar6 | (bVar16 & 0x7f) << (bVar10 & 0x1f)" identifier | (binary_expression "(bVar16 & 0x7f) << (bVar10 & 0x1f)" (parenthesized_expression "(bVar16 & 0x7f)" ( (binary_expression "bVar16 & 0x7f" identifier & number_literal) )) << (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) ))))) ;) }) while (parenthesized_expression "((char)bVar16 < '\0')" ( (binary_expression "(char)bVar16 < '\0'" (cast_expression "(char)bVar16" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((uVar11 < 0x20) && ((bVar16 & 0x40) != 0)) {\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }" if (parenthesized_expression "((uVar11 < 0x20) && ((bVar16 & 0x40) != 0))" ( (binary_expression "(uVar11 < 0x20) && ((bVar16 & 0x40) != 0)" (parenthesized_expression "(uVar11 < 0x20)" ( (binary_expression "uVar11 < 0x20" identifier < number_literal) )) && (parenthesized_expression "((bVar16 & 0x40) != 0)" ( (binary_expression "(bVar16 & 0x40) != 0" (parenthesized_expression "(bVar16 & 0x40)" ( (binary_expression "bVar16 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));\n        }" { (expression_statement "uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f));" (assignment_expression "uVar6 = uVar6 | -(1 << ((byte)uVar11 & 0x1f))" identifier = (binary_expression "uVar6 | -(1 << ((byte)uVar11 & 0x1f))" identifier | (unary_expression "-(1 << ((byte)uVar11 & 0x1f))" - (parenthesized_expression "(1 << ((byte)uVar11 & 0x1f))" ( (binary_expression "1 << ((byte)uVar11 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (if_statement "if (uVar15 == 0) {\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)((int)ppuVar14 + 0xf) = 1;\n        }" { (expression_statement "*(undefined1 *)((int)ppuVar14 + 0xf) = 1;" (assignment_expression "*(undefined1 *)((int)ppuVar14 + 0xf) = 1" (pointer_expression "*(undefined1 *)((int)ppuVar14 + 0xf)" * (cast_expression "(undefined1 *)((int)ppuVar14 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar14 + 0xf)" ( (binary_expression "(int)ppuVar14 + 0xf" (cast_expression "(int)ppuVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }" else (compound_statement "{\n          if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }\n          for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }\n        }" { (if_statement "if ((int)uVar15 < 1) {\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }\n          else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;\n            ppuVar14[0xb] = (uint *)uVar6;\n            bVar16 = 0;\n            uVar11 = 0;\n            pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);\n            do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');\n            uVar6 = (uint)ppuVar14[0xb];\n            bVar16 = uVar11 == 0;\n          }" { (if_statement "if (((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)) goto LAB_0017fba0;" if (parenthesized_expression "(((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0))" ( (binary_expression "((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0) &&\n               (ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)" (parenthesized_expression "((*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0)" ( (binary_expression "(*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0) != 0" (parenthesized_expression "(*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0)" ( (binary_expression "*(byte *)((int)ppuVar14 + 0xe) & ppuVar14[10] == (uint *)0x0" (pointer_expression "*(byte *)((int)ppuVar14 + 0xe)" * (cast_expression "(byte *)((int)ppuVar14 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar14 + 0xe)" ( (binary_expression "(int)ppuVar14 + 0xe" (cast_expression "(int)ppuVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & (binary_expression "ppuVar14[10] == (uint *)0x0" (subscript_expression "ppuVar14[10]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) != number_literal) )) && (parenthesized_expression "(ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0)" ( (comma_expression "ptVar9 = (type_info *)ppuVar14[9], ptVar9 != (type_info *)0x0" (assignment_expression "ptVar9 = (type_info *)ppuVar14[9]" identifier = (cast_expression "(type_info *)ppuVar14[9]" ( (type_descriptor "type_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[9]" identifier [ number_literal ]))) , (binary_expression "ptVar9 != (type_info *)0x0" identifier != (cast_expression "(type_info *)0x0" ( (type_descriptor "type_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0017fba0;" goto statement_identifier ;)) (expression_statement "ppuVar14[0xb] = (uint *)uVar6;" (assignment_expression "ppuVar14[0xb] = (uint *)uVar6" (subscript_expression "ppuVar14[0xb]" identifier [ number_literal ]) = (cast_expression "(uint *)uVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15]);" (assignment_expression "pbVar12 = (byte *)(~uVar15 + (int)ppuVar14[0x15])" identifier = (cast_expression "(byte *)(~uVar15 + (int)ppuVar14[0x15])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~uVar15 + (int)ppuVar14[0x15])" ( (binary_expression "~uVar15 + (int)ppuVar14[0x15]" (unary_expression "~uVar15" ~ identifier) + (cast_expression "(int)ppuVar14[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[0x15]" identifier [ number_literal ]))) )))) ;) (do_statement "do {\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            } while ((char)bVar10 < '\0');" do (compound_statement "{\n              bVar10 = *pbVar12;\n              bVar3 = bVar16 & 0x1f;\n              bVar16 = bVar16 + 7;\n              uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;\n              pbVar12 = pbVar12 + 1;\n            }" { (expression_statement "bVar10 = *pbVar12;" (assignment_expression "bVar10 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "bVar3 = bVar16 & 0x1f;" (assignment_expression "bVar3 = bVar16 & 0x1f" identifier = (binary_expression "bVar16 & 0x1f" identifier & number_literal)) ;) (expression_statement "bVar16 = bVar16 + 7;" (assignment_expression "bVar16 = bVar16 + 7" identifier = (binary_expression "bVar16 + 7" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3;" (assignment_expression "uVar11 = uVar11 | (bVar10 & 0x7f) << bVar3" identifier = (binary_expression "uVar11 | (bVar10 & 0x7f) << bVar3" identifier | (binary_expression "(bVar10 & 0x7f) << bVar3" (parenthesized_expression "(bVar10 & 0x7f)" ( (binary_expression "bVar10 & 0x7f" identifier & number_literal) )) << identifier))) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((char)bVar10 < '\0')" ( (binary_expression "(char)bVar10 < '\0'" (cast_expression "(char)bVar10" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar6 = (uint)ppuVar14[0xb];" (assignment_expression "uVar6 = (uint)ppuVar14[0xb]" identifier = (cast_expression "(uint)ppuVar14[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0xb]" identifier [ number_literal ]))) ;) (expression_statement "bVar16 = uVar11 == 0;" (assignment_expression "bVar16 = uVar11 == 0" identifier = (binary_expression "uVar11 == 0" identifier == number_literal)) ;) }) (else_clause "else {\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }" else (compound_statement "{\n            ppuVar14[-1] = (uint *)0x17fb42;\n            ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);\n            if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;\n            if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;\n            ppuVar14[-1] = (uint *)0x17fb57;\n            bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);\n          }" { (expression_statement "ppuVar14[-1] = (uint *)0x17fb42;" (assignment_expression "ppuVar14[-1] = (uint *)0x17fb42" (subscript_expression "ppuVar14[-1]" identifier [ number_literal ]) = (cast_expression "(uint *)0x17fb42" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15);" (assignment_expression "ptVar9 = (type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15)" identifier = (cast_expression "(type_info *)get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15)" ( (type_descriptor "type_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_ttype_entry((lsda_header_info *)ppuVar14[8],uVar15)" identifier (argument_list "((lsda_header_info *)ppuVar14[8],uVar15)" ( (cast_expression "(lsda_header_info *)ppuVar14[8]" ( (type_descriptor "lsda_header_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[8]" identifier [ number_literal ])) , identifier ))))) ;) (if_statement "if (ptVar9 == (type_info *)0x0) goto LAB_0017fb5b;" if (parenthesized_expression "(ptVar9 == (type_info *)0x0)" ( (binary_expression "ptVar9 == (type_info *)0x0" identifier == (cast_expression "(type_info *)0x0" ( (type_descriptor "type_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0017fb5b;" goto statement_identifier ;)) (if_statement "if ((type_info *)ppuVar14[9] == (type_info *)0x0) goto LAB_0017fb18;" if (parenthesized_expression "((type_info *)ppuVar14[9] == (type_info *)0x0)" ( (binary_expression "(type_info *)ppuVar14[9] == (type_info *)0x0" (cast_expression "(type_info *)ppuVar14[9]" ( (type_descriptor "type_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[9]" identifier [ number_literal ])) == (cast_expression "(type_info *)0x0" ( (type_descriptor "type_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0017fb18;" goto statement_identifier ;)) (expression_statement "ppuVar14[-1] = (uint *)0x17fb57;" (assignment_expression "ppuVar14[-1] = (uint *)0x17fb57" (subscript_expression "ppuVar14[-1]" identifier [ number_literal ]) = (cast_expression "(uint *)0x17fb57" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd);" (assignment_expression "bVar16 = get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd)" identifier = (call_expression "get_adjusted_ptr(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd)" identifier (argument_list "(ptVar9,(type_info *)ppuVar14[9],ppuVar14 + 0xd)" ( identifier , (cast_expression "(type_info *)ppuVar14[9]" ( (type_descriptor "type_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[9]" identifier [ number_literal ])) , (binary_expression "ppuVar14 + 0xd" identifier + number_literal) )))) ;) }))) (for_statement "for (; bVar16 != 0; bVar16 = bVar16 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }" for ( ; (binary_expression "bVar16 != 0" identifier != number_literal) ; (assignment_expression "bVar16 = bVar16 ^ 1" identifier = (binary_expression "bVar16 ^ 1" identifier ^ number_literal)) ) (compound_statement "{\nLAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar15) goto LAB_0017f6ad;\n            pbVar13 = (byte *)ppuVar14[2];\n                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */\n            ppuVar14[-1] = (uint *)0x17fb9d;\n            std::unexpected();\n            ptVar9 = extraout_EDX;\nLAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;\n            ppuVar14[-5] = (uint *)0x17fbb1;\n            bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);\n          }" { (labeled_statement "LAB_0017fb5b:\n            if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;" statement_identifier : (if_statement "if (((uint)ppuVar14[0x21] & 1) != 0) goto LAB_0017f86c;" if (parenthesized_expression "(((uint)ppuVar14[0x21] & 1) != 0)" ( (binary_expression "((uint)ppuVar14[0x21] & 1) != 0" (parenthesized_expression "((uint)ppuVar14[0x21] & 1)" ( (binary_expression "(uint)ppuVar14[0x21] & 1" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0017f86c;" goto statement_identifier ;))) (if_statement "if ((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))\n            goto LAB_0017f6a2;" if (parenthesized_expression "((ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6))" ( (binary_expression "(ppuVar14[10] == (uint *)0x0) &&\n               (uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6)" (parenthesized_expression "(ppuVar14[10] == (uint *)0x0)" ( (binary_expression "ppuVar14[10] == (uint *)0x0" (subscript_expression "ppuVar14[10]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6)" ( (comma_expression "uVar6 = (uint)ppuVar14[5],\n               uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6" (assignment_expression "uVar6 = (uint)ppuVar14[5]" identifier = (cast_expression "(uint)ppuVar14[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[5]" identifier [ number_literal ]))) , (binary_expression "uVar6 <= ppuVar14[10] && (uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6" (binary_expression "uVar6 <= ppuVar14[10]" identifier <= (subscript_expression "ppuVar14[10]" identifier [ number_literal ])) && (binary_expression "(uint)(1 < ppuVar14[4]) <= (int)ppuVar14[10] - uVar6" (call_expression "(uint)(1 < ppuVar14[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppuVar14[4])" ( (binary_expression "1 < ppuVar14[4]" number_literal < (subscript_expression "ppuVar14[4]" identifier [ number_literal ])) ))) <= (binary_expression "(int)ppuVar14[10] - uVar6" (cast_expression "(int)ppuVar14[10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[10]" identifier [ number_literal ])) - identifier)))) ))) )) (goto_statement "goto LAB_0017f6a2;" goto statement_identifier ;)) (if_statement "if (-1 < (int)uVar15) goto LAB_0017f6ad;" if (parenthesized_expression "(-1 < (int)uVar15)" ( (binary_expression "-1 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (expression_statement "pbVar13 = (byte *)ppuVar14[2];" (assignment_expression "pbVar13 = (byte *)ppuVar14[2]" identifier = (cast_expression "(byte *)ppuVar14[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[2]" identifier [ number_literal ]))) ;) comment (expression_statement "ppuVar14[-1] = (uint *)0x17fb9d;" (assignment_expression "ppuVar14[-1] = (uint *)0x17fb9d" (subscript_expression "ppuVar14[-1]" identifier [ number_literal ]) = (cast_expression "(uint *)0x17fb9d" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "std::unexpected();" statement_identifier : (ERROR ":" :) (expression_statement "unexpected();" (call_expression "unexpected()" identifier (argument_list "()" ( ))) ;)) (expression_statement "ptVar9 = extraout_EDX;" (assignment_expression "ptVar9 = extraout_EDX" identifier = identifier) ;) (labeled_statement "LAB_0017fba0:\n            ppuVar14[-4] = (uint *)uVar15;" statement_identifier : (expression_statement "ppuVar14[-4] = (uint *)uVar15;" (assignment_expression "ppuVar14[-4] = (uint *)uVar15" (subscript_expression "ppuVar14[-4]" identifier [ number_literal ]) = (cast_expression "(uint *)uVar15" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppuVar14[-5] = (uint *)0x17fbb1;" (assignment_expression "ppuVar14[-5] = (uint *)0x17fbb1" (subscript_expression "ppuVar14[-5]" identifier [ number_literal ]) = (cast_expression "(uint *)0x17fbb1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4]);" (assignment_expression "bVar16 = check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4])" identifier = (call_expression "check_exception_spec\n                               ((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4])" identifier (argument_list "((lsda_header_info *)ppuVar14[8],ptVar9,ppuVar14[0xd],\n                                (long)ppuVar14[-4])" ( (cast_expression "(lsda_header_info *)ppuVar14[8]" ( (type_descriptor "lsda_header_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar14[8]" identifier [ number_literal ])) , identifier , (subscript_expression "ppuVar14[0xd]" identifier [ number_literal ]) , (cast_expression "(long)ppuVar14[-4]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "ppuVar14[-4]" identifier [ number_literal ])) )))) ;) })) }))) (labeled_statement "LAB_0017fb18:\n        if (uVar6 == 0) goto LAB_0017fbbc;" statement_identifier : (if_statement "if (uVar6 == 0) goto LAB_0017fbbc;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017fbbc;" goto statement_identifier ;))) (expression_statement "ppuVar14[1] = (uint *)(pbVar13 + uVar6);" (assignment_expression "ppuVar14[1] = (uint *)(pbVar13 + uVar6)" (subscript_expression "ppuVar14[1]" identifier [ number_literal ]) = (cast_expression "(uint *)(pbVar13 + uVar6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + uVar6)" ( (binary_expression "pbVar13 + uVar6" identifier + identifier) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0017fbc7;" goto statement_identifier ;) })) (if_statement "if (uVar6 == 0) {\n    return 8;\n  }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }" if (parenthesized_expression "(((uint)ppuVar14[0x21] & 1) != 0)" ( (binary_expression "((uint)ppuVar14[0x21] & 1) != 0" (parenthesized_expression "((uint)ppuVar14[0x21] & 1)" ( (binary_expression "(uint)ppuVar14[0x21] & 1" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (expression_statement "*ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 8);" (assignment_expression "*ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 8)" (pointer_expression "*ppuVar14" * identifier) = (cast_expression "(uint *)((uint)ppuVar14[0x21] & 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppuVar14[0x21] & 8)" ( (binary_expression "(uint)ppuVar14[0x21] & 8" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if ((((uint)ppuVar14[0x21] & 8) == 0) &&\n     (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]))\n  goto LAB_0017f6ad;" if (parenthesized_expression "((((uint)ppuVar14[0x21] & 8) == 0) &&\n     (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]))" ( (binary_expression "(((uint)ppuVar14[0x21] & 8) == 0) &&\n     (ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5])" (parenthesized_expression "(((uint)ppuVar14[0x21] & 8) == 0)" ( (binary_expression "((uint)ppuVar14[0x21] & 8) == 0" (parenthesized_expression "((uint)ppuVar14[0x21] & 8)" ( (binary_expression "(uint)ppuVar14[0x21] & 8" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5])" ( (binary_expression "ppuVar14[5] == (uint *)0x0 && (uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]" (binary_expression "ppuVar14[5] == (uint *)0x0" (subscript_expression "ppuVar14[5]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)(1 < ppuVar14[4]) <= (uint)-(int)ppuVar14[5]" (call_expression "(uint)(1 < ppuVar14[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppuVar14[4])" ( (binary_expression "1 < ppuVar14[4]" number_literal < (subscript_expression "ppuVar14[4]" identifier [ number_literal ])) ))) <= (binary_expression "(uint)-(int)ppuVar14[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppuVar14[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[5]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (goto_statement "goto LAB_0017f974;" goto statement_identifier ;) (labeled_statement "LAB_0017fbbc:\n  if (*(char *)((int)ppuVar14 + 0xf) == '\0') {\n    return 8;\n  }" statement_identifier : (if_statement "if (*(char *)((int)ppuVar14 + 0xf) == '\0') {\n    return 8;\n  }" if (parenthesized_expression "(*(char *)((int)ppuVar14 + 0xf) == '\0')" ( (binary_expression "*(char *)((int)ppuVar14 + 0xf) == '\0'" (pointer_expression "*(char *)((int)ppuVar14 + 0xf)" * (cast_expression "(char *)((int)ppuVar14 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar14 + 0xf)" ( (binary_expression "(int)ppuVar14 + 0xf" (cast_expression "(int)ppuVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) }))) (labeled_statement "LAB_0017fbc7:\n  *ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 1);" statement_identifier : (expression_statement "*ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 1);" (assignment_expression "*ppuVar14 = (uint *)((uint)ppuVar14[0x21] & 1)" (pointer_expression "*ppuVar14" * identifier) = (cast_expression "(uint *)((uint)ppuVar14[0x21] & 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppuVar14[0x21] & 1)" ( (binary_expression "(uint)ppuVar14[0x21] & 1" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )))) ;)) (if_statement "if (((uint)ppuVar14[0x21] & 1) != 0) {\n    return 8;\n  }" if (parenthesized_expression "(((uint)ppuVar14[0x21] & 1) != 0)" ( (binary_expression "((uint)ppuVar14[0x21] & 1) != 0" (parenthesized_expression "((uint)ppuVar14[0x21] & 1)" ( (binary_expression "(uint)ppuVar14[0x21] & 1" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if ((((uint)ppuVar14[0x21] & 8) != 0) ||\n     (ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5]))) goto LAB_0017f6ad;" if (parenthesized_expression "((((uint)ppuVar14[0x21] & 8) != 0) ||\n     (ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5])))" ( (binary_expression "(((uint)ppuVar14[0x21] & 8) != 0) ||\n     (ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5]))" (parenthesized_expression "(((uint)ppuVar14[0x21] & 8) != 0)" ( (binary_expression "((uint)ppuVar14[0x21] & 8) != 0" (parenthesized_expression "((uint)ppuVar14[0x21] & 8)" ( (binary_expression "(uint)ppuVar14[0x21] & 8" (cast_expression "(uint)ppuVar14[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar14[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) || (parenthesized_expression "(ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5]))" ( (binary_expression "ppuVar14[5] <= *ppuVar14 &&\n      (uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5])" (binary_expression "ppuVar14[5] <= *ppuVar14" (subscript_expression "ppuVar14[5]" identifier [ number_literal ]) <= (pointer_expression "*ppuVar14" * identifier)) && (binary_expression "(uint)(1 < ppuVar14[4]) <= (uint)((int)*ppuVar14 - (int)ppuVar14[5])" (call_expression "(uint)(1 < ppuVar14[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppuVar14[4])" ( (binary_expression "1 < ppuVar14[4]" number_literal < (subscript_expression "ppuVar14[4]" identifier [ number_literal ])) ))) <= (call_expression "(uint)((int)*ppuVar14 - (int)ppuVar14[5])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*ppuVar14 - (int)ppuVar14[5])" ( (binary_expression "(int)*ppuVar14 - (int)ppuVar14[5]" (cast_expression "(int)*ppuVar14" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar14" * identifier)) - (cast_expression "(int)ppuVar14[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar14[5]" identifier [ number_literal ]))) ))))) ))) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (labeled_statement "LAB_0017f974:\n  *ppuVar14 = (uint *)0x0;" statement_identifier : (expression_statement "*ppuVar14 = (uint *)0x0;" (assignment_expression "*ppuVar14 = (uint *)0x0" (pointer_expression "*ppuVar14" * identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0017f6ad:\n  ppuVar14[-2] = ppuVar14[0x24];" statement_identifier : (expression_statement "ppuVar14[-2] = ppuVar14[0x24];" (assignment_expression "ppuVar14[-2] = ppuVar14[0x24]" (subscript_expression "ppuVar14[-2]" identifier [ number_literal ]) = (subscript_expression "ppuVar14[0x24]" identifier [ number_literal ])) ;)) (expression_statement "ppuVar14[-3] = (uint *)0x0;" (assignment_expression "ppuVar14[-3] = (uint *)0x0" (subscript_expression "ppuVar14[-3]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar14[-4] = ppuVar14[0x25];" (assignment_expression "ppuVar14[-4] = ppuVar14[0x25]" (subscript_expression "ppuVar14[-4]" identifier [ number_literal ]) = (subscript_expression "ppuVar14[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppuVar14[-5] = (uint *)0x17f6cb;" (assignment_expression "ppuVar14[-5] = (uint *)0x17f6cb" (subscript_expression "ppuVar14[-5]" identifier [ number_literal ]) = (cast_expression "(uint *)0x17f6cb" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_Unwind_SetGR();" (call_expression "_Unwind_SetGR()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar14[-2] = *ppuVar14;" (assignment_expression "ppuVar14[-2] = *ppuVar14" (subscript_expression "ppuVar14[-2]" identifier [ number_literal ]) = (pointer_expression "*ppuVar14" * identifier)) ;) (expression_statement "ppuVar14[-3] = (uint *)0x2;" (assignment_expression "ppuVar14[-3] = (uint *)0x2" (subscript_expression "ppuVar14[-3]" identifier [ number_literal ]) = (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar14[-4] = ppuVar14[0x25];" (assignment_expression "ppuVar14[-4] = ppuVar14[0x25]" (subscript_expression "ppuVar14[-4]" identifier [ number_literal ]) = (subscript_expression "ppuVar14[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppuVar14[-5] = (uint *)0x17f6e0;" (assignment_expression "ppuVar14[-5] = (uint *)0x17f6e0" (subscript_expression "ppuVar14[-5]" identifier [ number_literal ]) = (cast_expression "(uint *)0x17f6e0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_Unwind_SetGR();" (call_expression "_Unwind_SetGR()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar14[-3] = ppuVar14[6];" (assignment_expression "ppuVar14[-3] = ppuVar14[6]" (subscript_expression "ppuVar14[-3]" identifier [ number_literal ]) = (subscript_expression "ppuVar14[6]" identifier [ number_literal ])) ;) (expression_statement "ppuVar14[-4] = ppuVar14[0x25];" (assignment_expression "ppuVar14[-4] = ppuVar14[0x25]" (subscript_expression "ppuVar14[-4]" identifier [ number_literal ]) = (subscript_expression "ppuVar14[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppuVar14[-5] = (uint *)0x17f6f2;" (assignment_expression "ppuVar14[-5] = (uint *)0x17f6f2" (subscript_expression "ppuVar14[-5]" identifier [ number_literal ]) = (cast_expression "(uint *)0x17f6f2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_Unwind_SetIP();" (call_expression "_Unwind_SetIP()" identifier (argument_list "()" ( ))) ;) (return_statement "return 7;" return number_literal ;) })))
(translation_unit "undefined4 FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}\n\n" (function_definition "undefined4 FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}" type_identifier (function_declarator "FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)" identifier (parameter_list "(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "int **ppiVar11;" primitive_type (pointer_declarator "**ppiVar11" * (pointer_declarator "*ppiVar11" * identifier)) ;) (declaration "uint unaff_EBP;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int *local_8c;" primitive_type (pointer_declarator "*local_8c" * identifier) ;) (declaration "int *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "int *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "int *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "bool bStack_6e;" primitive_type identifier ;) (declaration "bool bStack_6d;" primitive_type identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34 [2];" primitive_type (array_declarator "local_34 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "local_74 = &__DT_PLTGOT;" (assignment_expression "local_74 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (if_statement "if (param_1 != 1) {\n    return 3;\n  }" if (parenthesized_expression "(param_1 != 1)" ( (binary_expression "param_1 != 1" identifier != number_literal) )) (compound_statement "{\n    return 3;\n  }" { (return_statement "return 3;" return number_literal ;) })) (expression_statement "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);" (assignment_expression "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" identifier = (binary_expression "param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" (binary_expression "param_4 + -0x474e5544" identifier + number_literal) + (call_expression "(uint)(0x432b2aff < param_3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x432b2aff < param_3)" ( (binary_expression "0x432b2aff < param_3" number_literal < identifier) ))))) ;) (expression_statement "local_6c = param_3 + 0xbcd4d500;" (assignment_expression "local_6c = param_3 + 0xbcd4d500" identifier = (binary_expression "param_3 + 0xbcd4d500" identifier + number_literal)) ;) (expression_statement "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;" (assignment_expression "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68" identifier = (binary_expression "(uint)(1 < param_3 + 0xbcd4d500) <= -local_68" (call_expression "(uint)(1 < param_3 + 0xbcd4d500)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < param_3 + 0xbcd4d500)" ( (binary_expression "1 < param_3 + 0xbcd4d500" number_literal < (binary_expression "param_3 + 0xbcd4d500" identifier + number_literal)) ))) <= (unary_expression "-local_68" - identifier))) ;) (expression_statement "bStack_6e = local_68 == 0 && bVar2;" (assignment_expression "bStack_6e = local_68 == 0 && bVar2" identifier = (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" identifier == number_literal) && identifier)) ;) (expression_statement "bStack_6d = param_2 == 6 && bStack_6e;" (assignment_expression "bStack_6d = param_2 == 6 && bStack_6e" identifier = (binary_expression "param_2 == 6 && bStack_6e" (binary_expression "param_2 == 6" identifier == number_literal) && identifier)) ;) (if_statement "if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" if (parenthesized_expression "(param_2 == 6 && (local_68 == 0 && bVar2))" ( (binary_expression "param_2 == 6 && (local_68 == 0 && bVar2)" (binary_expression "param_2 == 6" identifier == number_literal) && (parenthesized_expression "(local_68 == 0 && bVar2)" ( (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" identifier == number_literal) && identifier) ))) )) (compound_statement "{\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }" { (expression_statement "local_64 = param_5[-3];" (assignment_expression "local_64 = param_5[-3]" identifier = (subscript_expression "param_5[-3]" identifier [ number_literal ])) ;) (if_statement "if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }" if (parenthesized_expression "(param_5[-3] != 0)" ( (binary_expression "param_5[-3] != 0" (subscript_expression "param_5[-3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }" { (expression_statement "local_7c = (int *)param_5[-6];" (assignment_expression "local_7c = (int *)param_5[-6]" identifier = (cast_expression "(int *)param_5[-6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[-6]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = param_5[-4];" (assignment_expression "local_60 = param_5[-4]" identifier = (subscript_expression "param_5[-4]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" statement_identifier : (if_statement "if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" if (parenthesized_expression "((int)*ppiVar11 < 0)" ( (binary_expression "(int)*ppiVar11 < 0" (cast_expression "(int)*ppiVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppiVar11" * identifier)) < number_literal) )) (compound_statement "{\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" { (expression_statement "((int *)ppiVar11)[-1] = 0x17f994;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f994" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0017f500();" (call_expression "FUN_0017f500()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)ppiVar11)[-1] = 0x17f9a5;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f9a5" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = FUN_0017f480();" (assignment_expression "iVar5 = FUN_0017f480()" identifier = (call_expression "FUN_0017f480()" identifier (argument_list "()" ( )))) ;) (expression_statement "((int *)ppiVar11)[0x14] = iVar5;" (assignment_expression "((int *)ppiVar11)[0x14] = iVar5" (subscript_expression "((int *)ppiVar11)[0x14]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "((int *)ppiVar11)[-1] = 0x17f9ba;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f9ba" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar6 = FUN_0017f480();" (assignment_expression "uVar6 = FUN_0017f480()" identifier = (call_expression "FUN_0017f480()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;" (assignment_expression "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6" (pointer_expression "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc)" * (cast_expression "(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)ppiVar11)[0x24] + -0xc)" ( (binary_expression "((int *)ppiVar11)[0x24] + -0xc" (subscript_expression "((int *)ppiVar11)[0x24]" (parenthesized_expression "((int *)ppiVar11)" ( (cast_expression "(int *)ppiVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) )))) = identifier) ;) }))) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" else (compound_statement "{\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" { (expression_statement "local_8c = param_6;" (assignment_expression "local_8c = param_6" identifier = identifier) ;) (expression_statement "local_60 = FUN_00217430();" (assignment_expression "local_60 = FUN_00217430()" identifier = (call_expression "FUN_00217430()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (if_statement "if (local_60 == 0) {\n      return 8;\n    }" if (parenthesized_expression "(local_60 == 0)" ( (binary_expression "local_60 == 0" identifier == number_literal) )) (compound_statement "{\n      return 8;\n    }" { (return_statement "return 8;" return number_literal ;) })) (expression_statement "local_5c = local_34;" (assignment_expression "local_5c = local_34" identifier = identifier) ;) (expression_statement "puStack_80 = (undefined *)0x17f754;" (assignment_expression "puStack_80 = (undefined *)0x17f754" identifier = (cast_expression "(undefined *)0x17f754" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = (byte *)FUN_0017f500();" (assignment_expression "pbVar9 = (byte *)FUN_0017f500()" identifier = (cast_expression "(byte *)FUN_0017f500()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017f500()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puStack_80 = (undefined *)0x17f767;" (assignment_expression "puStack_80 = (undefined *)0x17f767" identifier = (cast_expression "(undefined *)0x17f767" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = FUN_0017f480();" (assignment_expression "local_2c = FUN_0017f480()" identifier = (call_expression "FUN_0017f480()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_88 = &local_44;" (assignment_expression "local_88 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "local_8c = param_6;" (assignment_expression "local_8c = param_6" identifier = identifier) ;) (expression_statement "iVar5 = FUN_00217400();" (assignment_expression "iVar5 = FUN_00217400()" identifier = (call_expression "FUN_00217400()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = iVar5 - (uint)(local_44 == 0);" (assignment_expression "uVar4 = iVar5 - (uint)(local_44 == 0)" identifier = (binary_expression "iVar5 - (uint)(local_44 == 0)" identifier - (call_expression "(uint)(local_44 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) ))))) ;) (if_statement "if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }" if (parenthesized_expression "(pbVar9 < local_24)" ( (binary_expression "pbVar9 < local_24" identifier < identifier) )) (compound_statement "{\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }" { (expression_statement "local_7c = &local_3c;" (assignment_expression "local_7c = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "local_78 = &local_38;" (assignment_expression "local_78 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (do_statement "do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);" do (compound_statement "{\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      }" { (expression_statement "puStack_80 = (undefined *)0x17f7be;" (assignment_expression "puStack_80 = (undefined *)0x17f7be" identifier = (cast_expression "(undefined *)0x17f7be" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_8c = &local_40;" (assignment_expression "local_8c = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "FUN_0017f230();" (call_expression "FUN_0017f230()" identifier (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = (undefined *)0x17f7e0;" (assignment_expression "puStack_80 = (undefined *)0x17f7e0" identifier = (cast_expression "(undefined *)0x17f7e0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_8c = local_7c;" (assignment_expression "local_8c = local_7c" identifier = identifier) ;) (expression_statement "FUN_0017f230();" (call_expression "FUN_0017f230()" identifier (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = (undefined *)0x17f805;" (assignment_expression "puStack_80 = (undefined *)0x17f805" identifier = (cast_expression "(undefined *)0x17f805" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" identifier (argument_list "()" ( ))) ;) (expression_statement "unaff_EBP = 0;" (assignment_expression "unaff_EBP = 0" identifier = number_literal) ;) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)FUN_0017f230();" (assignment_expression "pbVar9 = (byte *)FUN_0017f230()" identifier = (cast_expression "(byte *)FUN_0017f230()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017f230()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');" do (compound_statement "{\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        }" { (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "bVar3 = bVar13 & 0x1f;" (assignment_expression "bVar3 = bVar13 & 0x1f" identifier = (binary_expression "bVar13 & 0x1f" identifier & number_literal)) ;) (expression_statement "bVar13 = bVar13 + 7;" (assignment_expression "bVar13 = bVar13 + 7" identifier = (binary_expression "bVar13 + 7" identifier + number_literal)) ;) (expression_statement "unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;" (assignment_expression "unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3" identifier = (binary_expression "unaff_EBP | (bVar7 & 0x7f) << bVar3" identifier | (binary_expression "(bVar7 & 0x7f) << bVar3" (parenthesized_expression "(bVar7 & 0x7f)" ( (binary_expression "bVar7 & 0x7f" identifier & number_literal) )) << identifier))) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "((char)bVar7 < '\0')" ( (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (uVar4 < (uint)(local_40 + local_34[0])) break;" if (parenthesized_expression "(uVar4 < (uint)(local_40 + local_34[0]))" ( (binary_expression "uVar4 < (uint)(local_40 + local_34[0])" identifier < (call_expression "(uint)(local_40 + local_34[0])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + local_34[0])" ( (binary_expression "local_40 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ])) )))) )) (break_statement "break;" break ;)) (if_statement "if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;" if (parenthesized_expression "(uVar4 < (uint)(local_40 + local_34[0] + local_3c))" ( (binary_expression "uVar4 < (uint)(local_40 + local_34[0] + local_3c)" identifier < (call_expression "(uint)(local_40 + local_34[0] + local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + local_34[0] + local_3c)" ( (binary_expression "local_40 + local_34[0] + local_3c" (binary_expression "local_40 + local_34[0]" identifier + (subscript_expression "local_34[0]" identifier [ number_literal ])) + identifier) )))) )) (goto_statement "goto LAB_0017f8ce;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar10 < local_24)" ( (binary_expression "pbVar10 < local_24" identifier < identifier) )) ;) })) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (if_statement "if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }" if (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }" { (expression_statement "local_7c = (int *)0x0;" (assignment_expression "local_7c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_78 = (int *)0x0;" (assignment_expression "local_78 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }" statement_identifier : (if_statement "if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }" if (parenthesized_expression "(ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4]))" ( (binary_expression "ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])" (binary_expression "ppiVar11[5] != (int *)0x0" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])" (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))) < (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))))) )) (compound_statement "{\n        return 6;\n      }" { (return_statement "return 6;" return number_literal ;) }))) (expression_statement "iVar5 = (int)ppiVar11[0x24];" (assignment_expression "iVar5 = (int)ppiVar11[0x24]" identifier = (cast_expression "(int)ppiVar11[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = ppiVar11[0xd];" (assignment_expression "uVar6 = ppiVar11[0xd]" identifier = (subscript_expression "ppiVar11[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(iVar5 + -0x18) = *ppiVar11;" (assignment_expression "*(int **)(iVar5 + -0x18) = *ppiVar11" (pointer_expression "*(int **)(iVar5 + -0x18)" * (cast_expression "(int **)(iVar5 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x18)" ( (binary_expression "iVar5 + -0x18" identifier + number_literal) )))) = (pointer_expression "*ppiVar11" * identifier)) ;) (expression_statement "uVar1 = ppiVar11[1];" (assignment_expression "uVar1 = ppiVar11[1]" identifier = (subscript_expression "ppiVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar5 + -8) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + -8) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + -8)" * (cast_expression "(undefined4 *)(iVar5 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -8)" ( (binary_expression "iVar5 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + -0x14) = uVar1;" (assignment_expression "*(undefined4 *)(iVar5 + -0x14) = uVar1" (pointer_expression "*(undefined4 *)(iVar5 + -0x14)" * (cast_expression "(undefined4 *)(iVar5 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x14)" ( (binary_expression "iVar5 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(iVar5 + -0x10) = ppiVar11[7];" (assignment_expression "*(int **)(iVar5 + -0x10) = ppiVar11[7]" (pointer_expression "*(int **)(iVar5 + -0x10)" * (cast_expression "(int **)(iVar5 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x10)" ( (binary_expression "iVar5 + -0x10" identifier + number_literal) )))) = (subscript_expression "ppiVar11[7]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(iVar5 + -0xc) = ppiVar11[6];" (assignment_expression "*(int **)(iVar5 + -0xc) = ppiVar11[6]" (pointer_expression "*(int **)(iVar5 + -0xc)" * (cast_expression "(int **)(iVar5 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0xc)" ( (binary_expression "iVar5 + -0xc" identifier + number_literal) )))) = (subscript_expression "ppiVar11[6]" identifier [ number_literal ])) ;) (return_statement "return 6;" return number_literal ;) })) (if_statement "if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }" if (parenthesized_expression "(((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)))" ( (binary_expression "((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" (parenthesized_expression "((param_2 & 8) != 0)" ( (binary_expression "(param_2 & 8) != 0" (parenthesized_expression "(param_2 & 8)" ( (binary_expression "param_2 & 8" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" ( (comma_expression "unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (assignment_expression "unaff_EBP = local_68" identifier = identifier) , (binary_expression "local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "-local_68 < (uint)(1 < local_6c)" (unary_expression "-local_68" - identifier) < (call_expression "(uint)(1 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < local_6c)" ( (binary_expression "1 < local_6c" number_literal < identifier) )))))) ))) )) (compound_statement "{\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }" { (expression_statement "puStack_80 = &UNK_0017f928;" (assignment_expression "puStack_80 = &UNK_0017f928" identifier = (pointer_expression "&UNK_0017f928" & identifier)) ;) (expression_statement "FUN_0017f140();" (call_expression "FUN_0017f140()" identifier (argument_list "()" ( ))) ;) })) }))) (expression_statement "ppiVar11 = &local_8c;" (assignment_expression "ppiVar11 = &local_8c" identifier = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "local_8c = param_5;" (assignment_expression "local_8c = param_5" identifier = identifier) ;) (expression_statement "FUN_00180050();" (call_expression "FUN_00180050()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }" statement_identifier : (if_statement "if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }" if (parenthesized_expression "(ppiVar11[0x11] == (int *)0x0)" ( (binary_expression "ppiVar11[0x11] == (int *)0x0" (subscript_expression "ppiVar11[0x11]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) }))) (expression_statement "uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];" (assignment_expression "uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13]" identifier = (binary_expression "(int)ppiVar11[0x11] + (int)ppiVar11[0x13]" (cast_expression "(int)ppiVar11[0x11]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x11]" identifier [ number_literal ])) + (cast_expression "(int)ppiVar11[0x13]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x13]" identifier [ number_literal ])))) ;) (expression_statement "ppiVar11[6] = (int *)uVar4;" (assignment_expression "ppiVar11[6] = (int *)uVar4" (subscript_expression "ppiVar11[6]" identifier [ number_literal ]) = (cast_expression "(int *)uVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" if (parenthesized_expression "(unaff_EBP != 0)" ( (binary_expression "unaff_EBP != 0" identifier != number_literal) )) (compound_statement "{\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" { (expression_statement "ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);" (assignment_expression "ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" (subscript_expression "ppiVar11[1]" identifier [ number_literal ]) = (cast_expression "(int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" ( (binary_expression "((int)ppiVar11[0x16] - 1U) + unaff_EBP" (parenthesized_expression "((int)ppiVar11[0x16] - 1U)" ( (binary_expression "(int)ppiVar11[0x16] - 1U" (cast_expression "(int)ppiVar11[0x16]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x16]" identifier [ number_literal ])) - number_literal) )) + identifier) )))) ;) (if_statement "if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }" if (parenthesized_expression "(ppiVar11[6] == (int *)0x0)" ( (binary_expression "ppiVar11[6] == (int *)0x0" (subscript_expression "ppiVar11[6]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 8;\n    }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }" if (parenthesized_expression "(ppiVar11[1] != (int *)0x0)" ( (binary_expression "ppiVar11[1] != (int *)0x0" (subscript_expression "ppiVar11[1]" identifier [ number_literal ]) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }" { (expression_statement "ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);" (assignment_expression "ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8)" (subscript_expression "ppiVar11[10]" identifier [ number_literal ]) = (cast_expression "(int *)((uint)ppiVar11[0x21] & 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) == 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 8) == 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }" { (expression_statement "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);" (assignment_expression "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4)" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int *)((int)ppiVar11[2] - 0x30e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11[2] - 0x30e4)" ( (binary_expression "(int)ppiVar11[2] - 0x30e4" (cast_expression "(int)ppiVar11[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[2]" identifier [ number_literal ])) - number_literal) )))) ;) (if_statement "if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }" if (parenthesized_expression "(ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" ( (binary_expression "ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (binary_expression "ppiVar11[5] == (int *)0x0" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))))) )) (compound_statement "{\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }" { (expression_statement "uVar4 = (int)ppiVar11[0x24] + 0x20;" (assignment_expression "uVar4 = (int)ppiVar11[0x24] + 0x20" identifier = (binary_expression "(int)ppiVar11[0x24] + 0x20" (cast_expression "(int)ppiVar11[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ])) + number_literal)) ;) (if_statement "if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }" if (parenthesized_expression "((*(byte *)ppiVar11[0x24] & 1) != 0)" ( (binary_expression "(*(byte *)ppiVar11[0x24] & 1) != 0" (parenthesized_expression "(*(byte *)ppiVar11[0x24] & 1)" ( (binary_expression "*(byte *)ppiVar11[0x24] & 1" (pointer_expression "*(byte *)ppiVar11[0x24]" * (cast_expression "(byte *)ppiVar11[0x24]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ]))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }" { (expression_statement "uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);" (assignment_expression "uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30)" identifier = (pointer_expression "*(uint *)((int)ppiVar11[0x24] + -0x30)" * (cast_expression "(uint *)((int)ppiVar11[0x24] + -0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11[0x24] + -0x30)" ( (binary_expression "(int)ppiVar11[0x24] + -0x30" (cast_expression "(int)ppiVar11[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ])) + number_literal) ))))) ;) })) (expression_statement "ppiVar11[0xd] = (int *)uVar4;" (assignment_expression "ppiVar11[0xd] = (int *)uVar4" (subscript_expression "ppiVar11[0xd]" identifier [ number_literal ]) = (cast_expression "(int *)uVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);" (assignment_expression "ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50)" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int *)*(uint *)(uVar4 - 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(uint *)(uVar4 - 0x50)" * (cast_expression "(uint *)(uVar4 - 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 - 0x50)" ( (binary_expression "uVar4 - 0x50" identifier - number_literal) )))))) ;) })) }) (else_clause "else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" else (compound_statement "{\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" { (expression_statement "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);" (assignment_expression "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec)" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) = (cast_expression "(int *)((int)ppiVar11[2] - 0x30ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11[2] - 0x30ec)" ( (binary_expression "(int)ppiVar11[2] - 0x30ec" (cast_expression "(int)ppiVar11[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[2]" identifier [ number_literal ])) - number_literal) )))) ;) }))) (do_statement "do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );" do (compound_statement "{\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)ppiVar11[1];" (assignment_expression "pbVar9 = (byte *)ppiVar11[1]" identifier = (cast_expression "(byte *)ppiVar11[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar11[1]" identifier [ number_literal ]))) ;) (do_statement "do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');" do (compound_statement "{\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        }" { (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "bVar7 = (byte)uVar4;" (assignment_expression "bVar7 = (byte)uVar4" identifier = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = uVar4 + 7;" (assignment_expression "uVar4 = uVar4 + 7" identifier = (binary_expression "uVar4 + 7" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);" (assignment_expression "uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier = (binary_expression "uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier | (binary_expression "(bVar13 & 0x7f) << (bVar7 & 0x1f)" (parenthesized_expression "(bVar13 & 0x7f)" ( (binary_expression "bVar13 & 0x7f" identifier & number_literal) )) << (parenthesized_expression "(bVar7 & 0x1f)" ( (binary_expression "bVar7 & 0x1f" identifier & number_literal) ))))) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "((char)bVar13 < '\0')" ( (binary_expression "(char)bVar13 < '\0'" (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }" if (parenthesized_expression "((uVar4 < 0x20) && ((bVar13 & 0x40) != 0))" ( (binary_expression "(uVar4 < 0x20) && ((bVar13 & 0x40) != 0)" (parenthesized_expression "(uVar4 < 0x20)" ( (binary_expression "uVar4 < 0x20" identifier < number_literal) )) && (parenthesized_expression "((bVar13 & 0x40) != 0)" ( (binary_expression "(bVar13 & 0x40) != 0" (parenthesized_expression "(bVar13 & 0x40)" ( (binary_expression "bVar13 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }" { (expression_statement "uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));" (assignment_expression "uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f))" identifier = (binary_expression "uVar12 | -(1 << ((byte)uVar4 & 0x1f))" identifier | (unary_expression "-(1 << ((byte)uVar4 & 0x1f))" - (parenthesized_expression "(1 << ((byte)uVar4 & 0x1f))" ( (binary_expression "1 << ((byte)uVar4 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar4 & 0x1f)" ( (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (expression_statement "*ppiVar11 = (int *)uVar12;" (assignment_expression "*ppiVar11 = (int *)uVar12" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)uVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');" do (compound_statement "{\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        }" { (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar7 = (byte)uVar8;" (assignment_expression "bVar7 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = uVar8 + 7;" (assignment_expression "uVar8 = uVar8 + 7" identifier = (binary_expression "uVar8 + 7" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);" (assignment_expression "uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier = (binary_expression "uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" identifier | (binary_expression "(bVar13 & 0x7f) << (bVar7 & 0x1f)" (parenthesized_expression "(bVar13 & 0x7f)" ( (binary_expression "bVar13 & 0x7f" identifier & number_literal) )) << (parenthesized_expression "(bVar7 & 0x1f)" ( (binary_expression "bVar7 & 0x1f" identifier & number_literal) ))))) ;) }) while (parenthesized_expression "((char)bVar13 < '\0')" ( (binary_expression "(char)bVar13 < '\0'" (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }" if (parenthesized_expression "((uVar8 < 0x20) && ((bVar13 & 0x40) != 0))" ( (binary_expression "(uVar8 < 0x20) && ((bVar13 & 0x40) != 0)" (parenthesized_expression "(uVar8 < 0x20)" ( (binary_expression "uVar8 < 0x20" identifier < number_literal) )) && (parenthesized_expression "((bVar13 & 0x40) != 0)" ( (binary_expression "(bVar13 & 0x40) != 0" (parenthesized_expression "(bVar13 & 0x40)" ( (binary_expression "bVar13 & 0x40" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }" { (expression_statement "uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));" (assignment_expression "uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f))" identifier = (binary_expression "uVar4 | -(1 << ((byte)uVar8 & 0x1f))" identifier | (unary_expression "-(1 << ((byte)uVar8 & 0x1f))" - (parenthesized_expression "(1 << ((byte)uVar8 & 0x1f))" ( (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (if_statement "if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }" { (expression_statement "*(undefined1 *)((int)ppiVar11 + 0xf) = 1;" (assignment_expression "*(undefined1 *)((int)ppiVar11 + 0xf) = 1" (pointer_expression "*(undefined1 *)((int)ppiVar11 + 0xf)" * (cast_expression "(undefined1 *)((int)ppiVar11 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11 + 0xf)" ( (binary_expression "(int)ppiVar11 + 0xf" (cast_expression "(int)ppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" else (compound_statement "{\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" { (if_statement "if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" if (parenthesized_expression "((int)uVar12 < 1)" ( (binary_expression "(int)uVar12 < 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }" { (if_statement "if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;" if (parenthesized_expression "(((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0))" ( (binary_expression "((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)" (parenthesized_expression "((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0)" ( (binary_expression "(*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0" (parenthesized_expression "(*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0)" ( (binary_expression "*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0" (pointer_expression "*(byte *)((int)ppiVar11 + 0xe)" * (cast_expression "(byte *)((int)ppiVar11 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11 + 0xe)" ( (binary_expression "(int)ppiVar11 + 0xe" (cast_expression "(int)ppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & (binary_expression "ppiVar11[10] == (int *)0x0" (subscript_expression "ppiVar11[10]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) != number_literal) )) && (parenthesized_expression "(ppiVar11[9] != (int *)0x0)" ( (binary_expression "ppiVar11[9] != (int *)0x0" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0017fba0;" goto statement_identifier ;)) (expression_statement "ppiVar11[0xb] = (int *)uVar4;" (assignment_expression "ppiVar11[0xb] = (int *)uVar4" (subscript_expression "ppiVar11[0xb]" identifier [ number_literal ]) = (cast_expression "(int *)uVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);" (assignment_expression "pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15])" identifier = (cast_expression "(byte *)(~uVar12 + (int)ppiVar11[0x15])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~uVar12 + (int)ppiVar11[0x15])" ( (binary_expression "~uVar12 + (int)ppiVar11[0x15]" (unary_expression "~uVar12" ~ identifier) + (cast_expression "(int)ppiVar11[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[0x15]" identifier [ number_literal ]))) )))) ;) (do_statement "do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');" do (compound_statement "{\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            }" { (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "bVar3 = bVar13 & 0x1f;" (assignment_expression "bVar3 = bVar13 & 0x1f" identifier = (binary_expression "bVar13 & 0x1f" identifier & number_literal)) ;) (expression_statement "bVar13 = bVar13 + 7;" (assignment_expression "bVar13 = bVar13 + 7" identifier = (binary_expression "bVar13 + 7" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;" (assignment_expression "uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3" identifier = (binary_expression "uVar8 | (bVar7 & 0x7f) << bVar3" identifier | (binary_expression "(bVar7 & 0x7f) << bVar3" (parenthesized_expression "(bVar7 & 0x7f)" ( (binary_expression "bVar7 & 0x7f" identifier & number_literal) )) << identifier))) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((char)bVar7 < '\0')" ( (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar4 = (uint)ppiVar11[0xb];" (assignment_expression "uVar4 = (uint)ppiVar11[0xb]" identifier = (cast_expression "(uint)ppiVar11[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0xb]" identifier [ number_literal ]))) ;) (expression_statement "bVar13 = uVar8 == 0;" (assignment_expression "bVar13 = uVar8 == 0" identifier = (binary_expression "uVar8 == 0" identifier == number_literal)) ;) }) (else_clause "else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" else (compound_statement "{\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" { (expression_statement "ppiVar11[-1] = (int *)0x17fb42;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb42" (subscript_expression "ppiVar11[-1]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fb42" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = FUN_0017f380();" (assignment_expression "iVar5 = FUN_0017f380()" identifier = (call_expression "FUN_0017f380()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0017fb5b;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017fb5b;" goto statement_identifier ;)) (if_statement "if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;" if (parenthesized_expression "(ppiVar11[9] == (int *)0x0)" ( (binary_expression "ppiVar11[9] == (int *)0x0" (subscript_expression "ppiVar11[9]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0017fb18;" goto statement_identifier ;)) (expression_statement "ppiVar11[-1] = (int *)0x17fb57;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb57" (subscript_expression "ppiVar11[-1]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fb57" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = FUN_0017f1e0();" (assignment_expression "bVar13 = FUN_0017f1e0()" identifier = (call_expression "FUN_0017f1e0()" identifier (argument_list "()" ( )))) ;) }))) (for_statement "for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }" for ( ; (binary_expression "bVar13 != 0" identifier != number_literal) ; (assignment_expression "bVar13 = bVar13 ^ 1" identifier = (binary_expression "bVar13 ^ 1" identifier ^ number_literal)) ) (compound_statement "{\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }" { (labeled_statement "LAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;" statement_identifier : (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0017f86c;" goto statement_identifier ;))) (if_statement "if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;" if (parenthesized_expression "((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))" ( (binary_expression "(ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4)" (parenthesized_expression "(ppiVar11[10] == (int *)0x0)" ( (binary_expression "ppiVar11[10] == (int *)0x0" (subscript_expression "ppiVar11[10]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4)" ( (comma_expression "uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (assignment_expression "uVar4 = (uint)ppiVar11[5]" identifier = (cast_expression "(uint)ppiVar11[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))) , (binary_expression "uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (binary_expression "uVar4 <= ppiVar11[10]" identifier <= (subscript_expression "ppiVar11[10]" identifier [ number_literal ])) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (binary_expression "(int)ppiVar11[10] - uVar4" (cast_expression "(int)ppiVar11[10]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[10]" identifier [ number_literal ])) - identifier)))) ))) )) (goto_statement "goto LAB_0017f6a2;" goto statement_identifier ;)) (if_statement "if (-1 < (int)uVar12) goto LAB_0017f6ad;" if (parenthesized_expression "(-1 < (int)uVar12)" ( (binary_expression "-1 < (int)uVar12" number_literal < (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (expression_statement "pbVar10 = (byte *)ppiVar11[2];" (assignment_expression "pbVar10 = (byte *)ppiVar11[2]" identifier = (cast_expression "(byte *)ppiVar11[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "ppiVar11[-1] = (int *)0x17fb9d;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb9d" (subscript_expression "ppiVar11[-1]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fb9d" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0017f1c0();" (call_expression "FUN_0017f1c0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;" statement_identifier : (expression_statement "ppiVar11[-4] = (int *)uVar12;" (assignment_expression "ppiVar11[-4] = (int *)uVar12" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (cast_expression "(int *)uVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppiVar11[-5] = (int *)0x17fbb1;" (assignment_expression "ppiVar11[-5] = (int *)0x17fbb1" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17fbb1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = FUN_0017f410();" (assignment_expression "bVar13 = FUN_0017f410()" identifier = (call_expression "FUN_0017f410()" identifier (argument_list "()" ( )))) ;) })) }))) (labeled_statement "LAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;" statement_identifier : (if_statement "if (uVar4 == 0) goto LAB_0017fbbc;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0017fbbc;" goto statement_identifier ;))) (expression_statement "ppiVar11[1] = (int *)(pbVar10 + uVar4);" (assignment_expression "ppiVar11[1] = (int *)(pbVar10 + uVar4)" (subscript_expression "ppiVar11[1]" identifier [ number_literal ]) = (cast_expression "(int *)(pbVar10 + uVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + uVar4)" ( (binary_expression "pbVar10 + uVar4" identifier + identifier) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0017fbc7;" goto statement_identifier ;) })) (if_statement "if (uVar4 == 0) {\n    return 8;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (expression_statement "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);" (assignment_expression "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8)" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)((uint)ppiVar11[0x21] & 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;" if (parenthesized_expression "((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))" ( (binary_expression "(((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) == 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 8) == 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" ( (binary_expression "ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (binary_expression "ppiVar11[5] == (int *)0x0" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))))) ))) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (goto_statement "goto LAB_0017f974;" goto statement_identifier ;) (labeled_statement "LAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }" statement_identifier : (if_statement "if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }" if (parenthesized_expression "(*(char *)((int)ppiVar11 + 0xf) == '\0')" ( (binary_expression "*(char *)((int)ppiVar11 + 0xf) == '\0'" (pointer_expression "*(char *)((int)ppiVar11 + 0xf)" * (cast_expression "(char *)((int)ppiVar11 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar11 + 0xf)" ( (binary_expression "(int)ppiVar11 + 0xf" (cast_expression "(int)ppiVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) }))) (labeled_statement "LAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);" statement_identifier : (expression_statement "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);" (assignment_expression "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1)" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)((uint)ppiVar11[0x21] & 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )))) ;)) (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }" if (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" ( (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    return 8;\n  }" { (return_statement "return 8;" return number_literal ;) })) (if_statement "if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;" if (parenthesized_expression "((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])))" ( (binary_expression "(((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))" (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) != 0)" ( (binary_expression "((uint)ppiVar11[0x21] & 8) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" ( (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppiVar11[0x21]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) || (parenthesized_expression "(ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))" ( (binary_expression "ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])" (binary_expression "ppiVar11[5] <= *ppiVar11" (subscript_expression "ppiVar11[5]" identifier [ number_literal ]) <= (pointer_expression "*ppiVar11" * identifier)) && (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < ppiVar11[4])" ( (binary_expression "1 < ppiVar11[4]" number_literal < (subscript_expression "ppiVar11[4]" identifier [ number_literal ])) ))) <= (call_expression "(uint)((int)*ppiVar11 - (int)ppiVar11[5])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*ppiVar11 - (int)ppiVar11[5])" ( (binary_expression "(int)*ppiVar11 - (int)ppiVar11[5]" (cast_expression "(int)*ppiVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppiVar11" * identifier)) - (cast_expression "(int)ppiVar11[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar11[5]" identifier [ number_literal ]))) ))))) ))) )) (goto_statement "goto LAB_0017f6ad;" goto statement_identifier ;)) (labeled_statement "LAB_0017f974:\n  *ppiVar11 = (int *)0x0;" statement_identifier : (expression_statement "*ppiVar11 = (int *)0x0;" (assignment_expression "*ppiVar11 = (int *)0x0" (pointer_expression "*ppiVar11" * identifier) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];" statement_identifier : (expression_statement "ppiVar11[-2] = ppiVar11[0x24];" (assignment_expression "ppiVar11[-2] = ppiVar11[0x24]" (subscript_expression "ppiVar11[-2]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x24]" identifier [ number_literal ])) ;)) (expression_statement "ppiVar11[-3] = (int *)0x0;" (assignment_expression "ppiVar11[-3] = (int *)0x0" (subscript_expression "ppiVar11[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-5] = (int *)0x17f6cb;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6cb" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17f6cb" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00217390();" (call_expression "FUN_00217390()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar11[-2] = *ppiVar11;" (assignment_expression "ppiVar11[-2] = *ppiVar11" (subscript_expression "ppiVar11[-2]" identifier [ number_literal ]) = (pointer_expression "*ppiVar11" * identifier)) ;) (expression_statement "ppiVar11[-3] = (int *)0x2;" (assignment_expression "ppiVar11[-3] = (int *)0x2" (subscript_expression "ppiVar11[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-5] = (int *)0x17f6e0;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6e0" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17f6e0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00217390();" (call_expression "FUN_00217390()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar11[-3] = ppiVar11[6];" (assignment_expression "ppiVar11[-3] = ppiVar11[6]" (subscript_expression "ppiVar11[-3]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[6]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" identifier [ number_literal ]) = (subscript_expression "ppiVar11[0x25]" identifier [ number_literal ])) ;) (expression_statement "ppiVar11[-5] = (int *)0x17f6f2;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6f2" (subscript_expression "ppiVar11[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x17f6f2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00217420();" (call_expression "FUN_00217420()" identifier (argument_list "()" ( ))) ;) (return_statement "return 7;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (binary_expression IDENT + LIT)) ))) <= (unary_expression - IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) && IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) && IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) + LIT) )))) = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = 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 *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (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 = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + IDENT) )))) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression (binary_expression (parenthesized_expression ( IDENT )) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))))) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != LIT) || (binary_expression (unary_expression - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) )) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) )))) ;) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (unary_expression - (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (unary_expression - (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) <= (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - IDENT)))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (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) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) <= (pointer_expression * IDENT)) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}" (type_identifier "undefined4") (function_declarator "FUN_0017f5f0(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)" (identifier "FUN_0017f5f0") (parameter_list "(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  byte bVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte bVar7;\n  uint uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  int **ppiVar11;\n  uint unaff_EBP;\n  uint uVar12;\n  byte bVar13;\n  int *local_8c;\n  int *local_88;\n  undefined *puStack_80;\n  int *local_7c;\n  int *local_78;\n  undefined **local_74;\n  bool bStack_6e;\n  bool bStack_6d;\n  uint local_6c;\n  uint local_68;\n  int local_64;\n  int local_60;\n  int *local_5c;\n  undefined4 local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34 [2];\n  undefined4 local_2c;\n  byte *local_24;\n  \n  ppiVar11 = &local_7c;\n  local_74 = &__DT_PLTGOT;\n  local_48 = 0;\n  local_44 = 0;\n  if (param_1 != 1) {\n    return 3;\n  }\n  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);\n  local_6c = param_3 + 0xbcd4d500;\n  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;\n  bStack_6e = local_68 == 0 && bVar2;\n  bStack_6d = param_2 == 6 && bStack_6e;\n  if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }\n  ppiVar11 = &local_8c;\n  local_8c = param_5;\n  FUN_00180050();\nLAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }\n  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];\n  ppiVar11[6] = (int *)uVar4;\n  if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }\n  if (uVar4 == 0) {\n    return 8;\n  }\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);\n  if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;\n  goto LAB_0017f974;\nLAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }\nLAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);\n  if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }\n  if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;\nLAB_0017f974:\n  *ppiVar11 = (int *)0x0;\nLAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];\n  ppiVar11[-3] = (int *)0x0;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6cb;\n  FUN_00217390();\n  ppiVar11[-2] = *ppiVar11;\n  ppiVar11[-3] = (int *)0x2;\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6e0;\n  FUN_00217390();\n  ppiVar11[-3] = ppiVar11[6];\n  ppiVar11[-4] = ppiVar11[0x25];\n  ppiVar11[-5] = (int *)0x17f6f2;\n  FUN_00217420();\n  return 7;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "int **ppiVar11;" (primitive_type "int") (pointer_declarator "**ppiVar11" (* "*") (pointer_declarator "*ppiVar11" (* "*") (identifier "ppiVar11"))) (; ";")) (declaration "uint unaff_EBP;" (type_identifier "uint") (identifier "unaff_EBP") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "int *local_8c;" (primitive_type "int") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "int *local_88;" (primitive_type "int") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "undefined *puStack_80;" (type_identifier "undefined") (pointer_declarator "*puStack_80" (* "*") (identifier "puStack_80")) (; ";")) (declaration "int *local_7c;" (primitive_type "int") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "int *local_78;" (primitive_type "int") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined **local_74;" (type_identifier "undefined") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74"))) (; ";")) (declaration "bool bStack_6e;" (primitive_type "bool") (identifier "bStack_6e") (; ";")) (declaration "bool bStack_6d;" (primitive_type "bool") (identifier "bStack_6d") (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int *local_5c;" (primitive_type "int") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34 [2];" (primitive_type "int") (array_declarator "local_34 [2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "byte *local_24;" (type_identifier "byte") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" (identifier "ppiVar11") (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (expression_statement "local_74 = &__DT_PLTGOT;" (assignment_expression "local_74 = &__DT_PLTGOT" (identifier "local_74") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_1 != 1) {\n    return 3;\n  }" (if "if") (parenthesized_expression "(param_1 != 1)" (( "(") (binary_expression "param_1 != 1" (identifier "param_1") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    return 3;\n  }" ({ "{") (return_statement "return 3;" (return "return") (number_literal "3") (; ";")) (} "}"))) (expression_statement "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);" (assignment_expression "local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" (identifier "local_68") (= "=") (binary_expression "param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3)" (binary_expression "param_4 + -0x474e5544" (identifier "param_4") (+ "+") (number_literal "-0x474e5544")) (+ "+") (call_expression "(uint)(0x432b2aff < param_3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x432b2aff < param_3)" (( "(") (binary_expression "0x432b2aff < param_3" (number_literal "0x432b2aff") (< "<") (identifier "param_3")) () ")"))))) (; ";")) (expression_statement "local_6c = param_3 + 0xbcd4d500;" (assignment_expression "local_6c = param_3 + 0xbcd4d500" (identifier "local_6c") (= "=") (binary_expression "param_3 + 0xbcd4d500" (identifier "param_3") (+ "+") (number_literal "0xbcd4d500"))) (; ";")) (expression_statement "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;" (assignment_expression "bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68" (identifier "bVar2") (= "=") (binary_expression "(uint)(1 < param_3 + 0xbcd4d500) <= -local_68" (call_expression "(uint)(1 < param_3 + 0xbcd4d500)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < param_3 + 0xbcd4d500)" (( "(") (binary_expression "1 < param_3 + 0xbcd4d500" (number_literal "1") (< "<") (binary_expression "param_3 + 0xbcd4d500" (identifier "param_3") (+ "+") (number_literal "0xbcd4d500"))) () ")"))) (<= "<=") (unary_expression "-local_68" (- "-") (identifier "local_68")))) (; ";")) (expression_statement "bStack_6e = local_68 == 0 && bVar2;" (assignment_expression "bStack_6e = local_68 == 0 && bVar2" (identifier "bStack_6e") (= "=") (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" (identifier "local_68") (== "==") (number_literal "0")) (&& "&&") (identifier "bVar2"))) (; ";")) (expression_statement "bStack_6d = param_2 == 6 && bStack_6e;" (assignment_expression "bStack_6d = param_2 == 6 && bStack_6e" (identifier "bStack_6d") (= "=") (binary_expression "param_2 == 6 && bStack_6e" (binary_expression "param_2 == 6" (identifier "param_2") (== "==") (number_literal "6")) (&& "&&") (identifier "bStack_6e"))) (; ";")) (if_statement "if (param_2 == 6 && (local_68 == 0 && bVar2)) {\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }\n  else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" (if "if") (parenthesized_expression "(param_2 == 6 && (local_68 == 0 && bVar2))" (( "(") (binary_expression "param_2 == 6 && (local_68 == 0 && bVar2)" (binary_expression "param_2 == 6" (identifier "param_2") (== "==") (number_literal "6")) (&& "&&") (parenthesized_expression "(local_68 == 0 && bVar2)" (( "(") (binary_expression "local_68 == 0 && bVar2" (binary_expression "local_68 == 0" (identifier "local_68") (== "==") (number_literal "0")) (&& "&&") (identifier "bVar2")) () ")"))) () ")")) (compound_statement "{\n    local_64 = param_5[-3];\n    if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }\n  }" ({ "{") (expression_statement "local_64 = param_5[-3];" (assignment_expression "local_64 = param_5[-3]" (identifier "local_64") (= "=") (subscript_expression "param_5[-3]" (identifier "param_5") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (if_statement "if (param_5[-3] != 0) {\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }" (if "if") (parenthesized_expression "(param_5[-3] != 0)" (( "(") (binary_expression "param_5[-3] != 0" (subscript_expression "param_5[-3]" (identifier "param_5") ([ "[") (number_literal "-3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_7c = (int *)param_5[-6];\n      local_60 = param_5[-4];\nLAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }\n      goto LAB_0017f6ad;\n    }" ({ "{") (expression_statement "local_7c = (int *)param_5[-6];" (assignment_expression "local_7c = (int *)param_5[-6]" (identifier "local_7c") (= "=") (cast_expression "(int *)param_5[-6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[-6]" (identifier "param_5") ([ "[") (number_literal "-6") (] "]")))) (; ";")) (expression_statement "local_60 = param_5[-4];" (assignment_expression "local_60 = param_5[-4]" (identifier "local_60") (= "=") (subscript_expression "param_5[-4]" (identifier "param_5") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (labeled_statement "LAB_0017f6a2:\n      if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" (statement_identifier "LAB_0017f6a2") (: ":") (if_statement "if ((int)*ppiVar11 < 0) {\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" (if "if") (parenthesized_expression "((int)*ppiVar11 < 0)" (( "(") (binary_expression "(int)*ppiVar11 < 0" (cast_expression "(int)*ppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        ((int *)ppiVar11)[-1] = 0x17f994;\n        FUN_0017f500();\n        ((int *)ppiVar11)[-1] = 0x17f9a5;\n        iVar5 = FUN_0017f480();\n        ((int *)ppiVar11)[0x14] = iVar5;\n        ((int *)ppiVar11)[-1] = 0x17f9ba;\n        uVar6 = FUN_0017f480();\n        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;\n      }" ({ "{") (expression_statement "((int *)ppiVar11)[-1] = 0x17f994;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f994" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" (( "(") (cast_expression "(int *)ppiVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppiVar11")) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x17f994")) (; ";")) (expression_statement "FUN_0017f500();" (call_expression "FUN_0017f500()" (identifier "FUN_0017f500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "((int *)ppiVar11)[-1] = 0x17f9a5;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f9a5" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" (( "(") (cast_expression "(int *)ppiVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppiVar11")) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x17f9a5")) (; ";")) (expression_statement "iVar5 = FUN_0017f480();" (assignment_expression "iVar5 = FUN_0017f480()" (identifier "iVar5") (= "=") (call_expression "FUN_0017f480()" (identifier "FUN_0017f480") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "((int *)ppiVar11)[0x14] = iVar5;" (assignment_expression "((int *)ppiVar11)[0x14] = iVar5" (subscript_expression "((int *)ppiVar11)[0x14]" (parenthesized_expression "((int *)ppiVar11)" (( "(") (cast_expression "(int *)ppiVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppiVar11")) () ")")) ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "((int *)ppiVar11)[-1] = 0x17f9ba;" (assignment_expression "((int *)ppiVar11)[-1] = 0x17f9ba" (subscript_expression "((int *)ppiVar11)[-1]" (parenthesized_expression "((int *)ppiVar11)" (( "(") (cast_expression "(int *)ppiVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppiVar11")) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x17f9ba")) (; ";")) (expression_statement "uVar6 = FUN_0017f480();" (assignment_expression "uVar6 = FUN_0017f480()" (identifier "uVar6") (= "=") (call_expression "FUN_0017f480()" (identifier "FUN_0017f480") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;" (assignment_expression "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6" (pointer_expression "*(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc)" (* "*") (cast_expression "(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int *)ppiVar11)[0x24] + -0xc)" (( "(") (binary_expression "((int *)ppiVar11)[0x24] + -0xc" (subscript_expression "((int *)ppiVar11)[0x24]" (parenthesized_expression "((int *)ppiVar11)" (( "(") (cast_expression "(int *)ppiVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppiVar11")) () ")")) ([ "[") (number_literal "0x24") (] "]")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}")))) (goto_statement "goto LAB_0017f6ad;" (goto "goto") (statement_identifier "LAB_0017f6ad") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" (else "else") (compound_statement "{\n    local_8c = param_6;\n    local_60 = FUN_00217430();\n    ppiVar11 = &local_7c;\n    if (local_60 == 0) {\n      return 8;\n    }\n    local_5c = local_34;\n    puStack_80 = (undefined *)0x17f754;\n    pbVar9 = (byte *)FUN_0017f500();\n    puStack_80 = (undefined *)0x17f767;\n    local_2c = FUN_0017f480();\n    local_88 = &local_44;\n    local_8c = param_6;\n    iVar5 = FUN_00217400();\n    uVar4 = iVar5 - (uint)(local_44 == 0);\n    if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }\n    ppiVar11 = &local_7c;\n    if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }\n    if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }\n  }" ({ "{") (expression_statement "local_8c = param_6;" (assignment_expression "local_8c = param_6" (identifier "local_8c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_60 = FUN_00217430();" (assignment_expression "local_60 = FUN_00217430()" (identifier "local_60") (= "=") (call_expression "FUN_00217430()" (identifier "FUN_00217430") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" (identifier "ppiVar11") (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (if_statement "if (local_60 == 0) {\n      return 8;\n    }" (if "if") (parenthesized_expression "(local_60 == 0)" (( "(") (binary_expression "local_60 == 0" (identifier "local_60") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 8;\n    }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}"))) (expression_statement "local_5c = local_34;" (assignment_expression "local_5c = local_34" (identifier "local_5c") (= "=") (identifier "local_34")) (; ";")) (expression_statement "puStack_80 = (undefined *)0x17f754;" (assignment_expression "puStack_80 = (undefined *)0x17f754" (identifier "puStack_80") (= "=") (cast_expression "(undefined *)0x17f754" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f754"))) (; ";")) (expression_statement "pbVar9 = (byte *)FUN_0017f500();" (assignment_expression "pbVar9 = (byte *)FUN_0017f500()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_0017f500()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017f500()" (identifier "FUN_0017f500") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puStack_80 = (undefined *)0x17f767;" (assignment_expression "puStack_80 = (undefined *)0x17f767" (identifier "puStack_80") (= "=") (cast_expression "(undefined *)0x17f767" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f767"))) (; ";")) (expression_statement "local_2c = FUN_0017f480();" (assignment_expression "local_2c = FUN_0017f480()" (identifier "local_2c") (= "=") (call_expression "FUN_0017f480()" (identifier "FUN_0017f480") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_88 = &local_44;" (assignment_expression "local_88 = &local_44" (identifier "local_88") (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "local_8c = param_6;" (assignment_expression "local_8c = param_6" (identifier "local_8c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "iVar5 = FUN_00217400();" (assignment_expression "iVar5 = FUN_00217400()" (identifier "iVar5") (= "=") (call_expression "FUN_00217400()" (identifier "FUN_00217400") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = iVar5 - (uint)(local_44 == 0);" (assignment_expression "uVar4 = iVar5 - (uint)(local_44 == 0)" (identifier "uVar4") (= "=") (binary_expression "iVar5 - (uint)(local_44 == 0)" (identifier "iVar5") (- "-") (call_expression "(uint)(local_44 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_44 == 0)" (( "(") (binary_expression "local_44 == 0" (identifier "local_44") (== "==") (number_literal "0")) () ")"))))) (; ";")) (if_statement "if (pbVar9 < local_24) {\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }" (if "if") (parenthesized_expression "(pbVar9 < local_24)" (( "(") (binary_expression "pbVar9 < local_24" (identifier "pbVar9") (< "<") (identifier "local_24")) () ")")) (compound_statement "{\n      local_7c = &local_3c;\n      local_78 = &local_38;\n      do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);\n    }" ({ "{") (expression_statement "local_7c = &local_3c;" (assignment_expression "local_7c = &local_3c" (identifier "local_7c") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (expression_statement "local_78 = &local_38;" (assignment_expression "local_78 = &local_38" (identifier "local_78") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (do_statement "do {\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      } while (pbVar10 < local_24);" (do "do") (compound_statement "{\n        puStack_80 = (undefined *)0x17f7be;\n        FUN_0017f480();\n        local_8c = &local_40;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f7e0;\n        FUN_0017f480();\n        local_8c = local_7c;\n        FUN_0017f230();\n        puStack_80 = (undefined *)0x17f805;\n        FUN_0017f480();\n        unaff_EBP = 0;\n        local_8c = local_78;\n        pbVar9 = (byte *)FUN_0017f230();\n        bVar13 = 0;\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');\n        if (uVar4 < (uint)(local_40 + local_34[0])) break;\n        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;\n      }" ({ "{") (expression_statement "puStack_80 = (undefined *)0x17f7be;" (assignment_expression "puStack_80 = (undefined *)0x17f7be" (identifier "puStack_80") (= "=") (cast_expression "(undefined *)0x17f7be" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f7be"))) (; ";")) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" (identifier "FUN_0017f480") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_8c = &local_40;" (assignment_expression "local_8c = &local_40" (identifier "local_8c") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "FUN_0017f230();" (call_expression "FUN_0017f230()" (identifier "FUN_0017f230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_80 = (undefined *)0x17f7e0;" (assignment_expression "puStack_80 = (undefined *)0x17f7e0" (identifier "puStack_80") (= "=") (cast_expression "(undefined *)0x17f7e0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f7e0"))) (; ";")) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" (identifier "FUN_0017f480") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_8c = local_7c;" (assignment_expression "local_8c = local_7c" (identifier "local_8c") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "FUN_0017f230();" (call_expression "FUN_0017f230()" (identifier "FUN_0017f230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_80 = (undefined *)0x17f805;" (assignment_expression "puStack_80 = (undefined *)0x17f805" (identifier "puStack_80") (= "=") (cast_expression "(undefined *)0x17f805" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f805"))) (; ";")) (expression_statement "FUN_0017f480();" (call_expression "FUN_0017f480()" (identifier "FUN_0017f480") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "unaff_EBP = 0;" (assignment_expression "unaff_EBP = 0" (identifier "unaff_EBP") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" (identifier "local_8c") (= "=") (identifier "local_78")) (; ";")) (expression_statement "pbVar9 = (byte *)FUN_0017f230();" (assignment_expression "pbVar9 = (byte *)FUN_0017f230()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)FUN_0017f230()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017f230()" (identifier "FUN_0017f230") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        } while ((char)bVar7 < '\0');" (do "do") (compound_statement "{\n          pbVar10 = pbVar9 + 1;\n          bVar7 = *pbVar9;\n          bVar3 = bVar13 & 0x1f;\n          bVar13 = bVar13 + 7;\n          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;\n          pbVar9 = pbVar10;\n        }" ({ "{") (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" (identifier "bVar7") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "bVar3 = bVar13 & 0x1f;" (assignment_expression "bVar3 = bVar13 & 0x1f" (identifier "bVar3") (= "=") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "bVar13 = bVar13 + 7;" (assignment_expression "bVar13 = bVar13 + 7" (identifier "bVar13") (= "=") (binary_expression "bVar13 + 7" (identifier "bVar13") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;" (assignment_expression "unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3" (identifier "unaff_EBP") (= "=") (binary_expression "unaff_EBP | (bVar7 & 0x7f) << bVar3" (identifier "unaff_EBP") (| "|") (binary_expression "(bVar7 & 0x7f) << bVar3" (parenthesized_expression "(bVar7 & 0x7f)" (( "(") (binary_expression "bVar7 & 0x7f" (identifier "bVar7") (& "&") (number_literal "0x7f")) () ")")) (<< "<<") (identifier "bVar3")))) (; ";")) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" (identifier "pbVar9") (= "=") (identifier "pbVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((char)bVar7 < '\0')" (( "(") (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar7")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if (uVar4 < (uint)(local_40 + local_34[0])) break;" (if "if") (parenthesized_expression "(uVar4 < (uint)(local_40 + local_34[0]))" (( "(") (binary_expression "uVar4 < (uint)(local_40 + local_34[0])" (identifier "uVar4") (< "<") (call_expression "(uint)(local_40 + local_34[0])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_40 + local_34[0])" (( "(") (binary_expression "local_40 + local_34[0]" (identifier "local_40") (+ "+") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;" (if "if") (parenthesized_expression "(uVar4 < (uint)(local_40 + local_34[0] + local_3c))" (( "(") (binary_expression "uVar4 < (uint)(local_40 + local_34[0] + local_3c)" (identifier "uVar4") (< "<") (call_expression "(uint)(local_40 + local_34[0] + local_3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_40 + local_34[0] + local_3c)" (( "(") (binary_expression "local_40 + local_34[0] + local_3c" (binary_expression "local_40 + local_34[0]" (identifier "local_40") (+ "+") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (+ "+") (identifier "local_3c")) () ")")))) () ")")) (goto_statement "goto LAB_0017f8ce;" (goto "goto") (statement_identifier "LAB_0017f8ce") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(pbVar10 < local_24)" (( "(") (binary_expression "pbVar10 < local_24" (identifier "pbVar10") (< "<") (identifier "local_24")) () ")")) (; ";")) (} "}"))) (expression_statement "ppiVar11 = &local_7c;" (assignment_expression "ppiVar11 = &local_7c" (identifier "ppiVar11") (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (if_statement "if ((param_2 & 1) != 0) {\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }" (if "if") (parenthesized_expression "((param_2 & 1) != 0)" (( "(") (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" (( "(") (binary_expression "param_2 & 1" (identifier "param_2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_7c = (int *)0x0;\n      local_64 = 0;\n      local_78 = (int *)0x0;\nLAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }\n      iVar5 = (int)ppiVar11[0x24];\n      uVar6 = ppiVar11[0xd];\n      *(int **)(iVar5 + -0x18) = *ppiVar11;\n      uVar1 = ppiVar11[1];\n      *(undefined4 *)(iVar5 + -8) = uVar6;\n      *(undefined4 *)(iVar5 + -0x14) = uVar1;\n      *(int **)(iVar5 + -0x10) = ppiVar11[7];\n      *(int **)(iVar5 + -0xc) = ppiVar11[6];\n      return 6;\n    }" ({ "{") (expression_statement "local_7c = (int *)0x0;" (assignment_expression "local_7c = (int *)0x0" (identifier "local_7c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = (int *)0x0;" (assignment_expression "local_78 = (int *)0x0" (identifier "local_78") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0017f86c:\n      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }" (statement_identifier "LAB_0017f86c") (: ":") (if_statement "if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {\n        return 6;\n      }" (if "if") (parenthesized_expression "(ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4]))" (( "(") (binary_expression "ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])" (binary_expression "ppiVar11[5] != (int *)0x0" (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "(uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])" (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (cast_expression "(int)ppiVar11[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")))) (< "<") (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < ppiVar11[4])" (( "(") (binary_expression "1 < ppiVar11[4]" (number_literal "1") (< "<") (subscript_expression "ppiVar11[4]" (identifier "ppiVar11") ([ "[") (number_literal "4") (] "]"))) () ")"))))) () ")")) (compound_statement "{\n        return 6;\n      }" ({ "{") (return_statement "return 6;" (return "return") (number_literal "6") (; ";")) (} "}")))) (expression_statement "iVar5 = (int)ppiVar11[0x24];" (assignment_expression "iVar5 = (int)ppiVar11[0x24]" (identifier "iVar5") (= "=") (cast_expression "(int)ppiVar11[0x24]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[0x24]" (identifier "ppiVar11") ([ "[") (number_literal "0x24") (] "]")))) (; ";")) (expression_statement "uVar6 = ppiVar11[0xd];" (assignment_expression "uVar6 = ppiVar11[0xd]" (identifier "uVar6") (= "=") (subscript_expression "ppiVar11[0xd]" (identifier "ppiVar11") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "*(int **)(iVar5 + -0x18) = *ppiVar11;" (assignment_expression "*(int **)(iVar5 + -0x18) = *ppiVar11" (pointer_expression "*(int **)(iVar5 + -0x18)" (* "*") (cast_expression "(int **)(iVar5 + -0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x18)" (( "(") (binary_expression "iVar5 + -0x18" (identifier "iVar5") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11"))) (; ";")) (expression_statement "uVar1 = ppiVar11[1];" (assignment_expression "uVar1 = ppiVar11[1]" (identifier "uVar1") (= "=") (subscript_expression "ppiVar11[1]" (identifier "ppiVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + -8) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + -8) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + -8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -8)" (( "(") (binary_expression "iVar5 + -8" (identifier "iVar5") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + -0x14) = uVar1;" (assignment_expression "*(undefined4 *)(iVar5 + -0x14) = uVar1" (pointer_expression "*(undefined4 *)(iVar5 + -0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x14)" (( "(") (binary_expression "iVar5 + -0x14" (identifier "iVar5") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(int **)(iVar5 + -0x10) = ppiVar11[7];" (assignment_expression "*(int **)(iVar5 + -0x10) = ppiVar11[7]" (pointer_expression "*(int **)(iVar5 + -0x10)" (* "*") (cast_expression "(int **)(iVar5 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x10)" (( "(") (binary_expression "iVar5 + -0x10" (identifier "iVar5") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "ppiVar11[7]" (identifier "ppiVar11") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(int **)(iVar5 + -0xc) = ppiVar11[6];" (assignment_expression "*(int **)(iVar5 + -0xc) = ppiVar11[6]" (pointer_expression "*(int **)(iVar5 + -0xc)" (* "*") (cast_expression "(int **)(iVar5 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0xc)" (( "(") (binary_expression "iVar5 + -0xc" (identifier "iVar5") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "ppiVar11[6]" (identifier "ppiVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (return_statement "return 6;" (return "return") (number_literal "6") (; ";")) (} "}"))) (if_statement "if (((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }" (if "if") (parenthesized_expression "(((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)))" (( "(") (binary_expression "((param_2 & 8) != 0) ||\n       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" (parenthesized_expression "((param_2 & 8) != 0)" (( "(") (binary_expression "(param_2 & 8) != 0" (parenthesized_expression "(param_2 & 8)" (( "(") (binary_expression "param_2 & 8" (identifier "param_2") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))" (( "(") (comma_expression "unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (assignment_expression "unaff_EBP = local_68" (identifier "unaff_EBP") (= "=") (identifier "local_68")) (, ",") (binary_expression "local_68 != 0 || -local_68 < (uint)(1 < local_6c)" (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "-local_68 < (uint)(1 < local_6c)" (unary_expression "-local_68" (- "-") (identifier "local_68")) (< "<") (call_expression "(uint)(1 < local_6c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < local_6c)" (( "(") (binary_expression "1 < local_6c" (number_literal "1") (< "<") (identifier "local_6c")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n                    \n      puStack_80 = &UNK_0017f928;\n      FUN_0017f140();\n    }" ({ "{") (expression_statement "puStack_80 = &UNK_0017f928;" (assignment_expression "puStack_80 = &UNK_0017f928" (identifier "puStack_80") (= "=") (pointer_expression "&UNK_0017f928" (& "&") (identifier "UNK_0017f928"))) (; ";")) (expression_statement "FUN_0017f140();" (call_expression "FUN_0017f140()" (identifier "FUN_0017f140") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "ppiVar11 = &local_8c;" (assignment_expression "ppiVar11 = &local_8c" (identifier "ppiVar11") (= "=") (pointer_expression "&local_8c" (& "&") (identifier "local_8c"))) (; ";")) (expression_statement "local_8c = param_5;" (assignment_expression "local_8c = param_5" (identifier "local_8c") (= "=") (identifier "param_5")) (; ";")) (expression_statement "FUN_00180050();" (call_expression "FUN_00180050()" (identifier "FUN_00180050") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0017f8ce:\n  if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }" (statement_identifier "LAB_0017f8ce") (: ":") (if_statement "if (ppiVar11[0x11] == (int *)0x0) {\n    return 8;\n  }" (if "if") (parenthesized_expression "(ppiVar11[0x11] == (int *)0x0)" (( "(") (binary_expression "ppiVar11[0x11] == (int *)0x0" (subscript_expression "ppiVar11[0x11]" (identifier "ppiVar11") ([ "[") (number_literal "0x11") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 8;\n  }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}")))) (expression_statement "uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];" (assignment_expression "uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13]" (identifier "uVar4") (= "=") (binary_expression "(int)ppiVar11[0x11] + (int)ppiVar11[0x13]" (cast_expression "(int)ppiVar11[0x11]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[0x11]" (identifier "ppiVar11") ([ "[") (number_literal "0x11") (] "]"))) (+ "+") (cast_expression "(int)ppiVar11[0x13]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[0x13]" (identifier "ppiVar11") ([ "[") (number_literal "0x13") (] "]"))))) (; ";")) (expression_statement "ppiVar11[6] = (int *)uVar4;" (assignment_expression "ppiVar11[6] = (int *)uVar4" (subscript_expression "ppiVar11[6]" (identifier "ppiVar11") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int *)uVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar4"))) (; ";")) (if_statement "if (unaff_EBP != 0) {\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" (if "if") (parenthesized_expression "(unaff_EBP != 0)" (( "(") (binary_expression "unaff_EBP != 0" (identifier "unaff_EBP") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);\n    if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }\n    if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }\n    goto LAB_0017fbc7;\n  }" ({ "{") (expression_statement "ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);" (assignment_expression "ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" (subscript_expression "ppiVar11[1]" (identifier "ppiVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)ppiVar11[0x16] - 1U) + unaff_EBP)" (( "(") (binary_expression "((int)ppiVar11[0x16] - 1U) + unaff_EBP" (parenthesized_expression "((int)ppiVar11[0x16] - 1U)" (( "(") (binary_expression "(int)ppiVar11[0x16] - 1U" (cast_expression "(int)ppiVar11[0x16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[0x16]" (identifier "ppiVar11") ([ "[") (number_literal "0x16") (] "]"))) (- "-") (number_literal "1U")) () ")")) (+ "+") (identifier "unaff_EBP")) () ")")))) (; ";")) (if_statement "if (ppiVar11[6] == (int *)0x0) {\n      return 8;\n    }" (if "if") (parenthesized_expression "(ppiVar11[6] == (int *)0x0)" (( "(") (binary_expression "ppiVar11[6] == (int *)0x0" (subscript_expression "ppiVar11[6]" (identifier "ppiVar11") ([ "[") (number_literal "6") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 8;\n    }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}"))) (if_statement "if (ppiVar11[1] != (int *)0x0) {\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }" (if "if") (parenthesized_expression "(ppiVar11[1] != (int *)0x0)" (( "(") (binary_expression "ppiVar11[1] != (int *)0x0" (subscript_expression "ppiVar11[1]" (identifier "ppiVar11") ([ "[") (number_literal "1") (] "]")) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);\n      if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }\n      do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );\n    }" ({ "{") (expression_statement "ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);" (assignment_expression "ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8)" (subscript_expression "ppiVar11[10]" (identifier "ppiVar11") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(int *)((uint)ppiVar11[0x21] & 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (((uint)ppiVar11[0x21] & 8) == 0) {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }\n      else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" (if "if") (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) == 0)" (( "(") (binary_expression "((uint)ppiVar11[0x21] & 8) == 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);\n        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }\n      }" ({ "{") (expression_statement "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);" (assignment_expression "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4)" (subscript_expression "ppiVar11[9]" (identifier "ppiVar11") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int *)((int)ppiVar11[2] - 0x30e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar11[2] - 0x30e4)" (( "(") (binary_expression "(int)ppiVar11[2] - 0x30e4" (cast_expression "(int)ppiVar11[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[2]" (identifier "ppiVar11") ([ "[") (number_literal "2") (] "]"))) (- "-") (number_literal "0x30e4")) () ")")))) (; ";")) (if_statement "if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }" (if "if") (parenthesized_expression "(ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" (( "(") (binary_expression "ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (binary_expression "ppiVar11[5] == (int *)0x0" (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < ppiVar11[4])" (( "(") (binary_expression "1 < ppiVar11[4]" (number_literal "1") (< "<") (subscript_expression "ppiVar11[4]" (identifier "ppiVar11") ([ "[") (number_literal "4") (] "]"))) () ")"))) (<= "<=") (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (cast_expression "(int)ppiVar11[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")))))) () ")")) (compound_statement "{\n          uVar4 = (int)ppiVar11[0x24] + 0x20;\n          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }\n          ppiVar11[0xd] = (int *)uVar4;\n          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);\n        }" ({ "{") (expression_statement "uVar4 = (int)ppiVar11[0x24] + 0x20;" (assignment_expression "uVar4 = (int)ppiVar11[0x24] + 0x20" (identifier "uVar4") (= "=") (binary_expression "(int)ppiVar11[0x24] + 0x20" (cast_expression "(int)ppiVar11[0x24]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[0x24]" (identifier "ppiVar11") ([ "[") (number_literal "0x24") (] "]"))) (+ "+") (number_literal "0x20"))) (; ";")) (if_statement "if ((*(byte *)ppiVar11[0x24] & 1) != 0) {\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }" (if "if") (parenthesized_expression "((*(byte *)ppiVar11[0x24] & 1) != 0)" (( "(") (binary_expression "(*(byte *)ppiVar11[0x24] & 1) != 0" (parenthesized_expression "(*(byte *)ppiVar11[0x24] & 1)" (( "(") (binary_expression "*(byte *)ppiVar11[0x24] & 1" (pointer_expression "*(byte *)ppiVar11[0x24]" (* "*") (cast_expression "(byte *)ppiVar11[0x24]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar11[0x24]" (identifier "ppiVar11") ([ "[") (number_literal "0x24") (] "]")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);\n          }" ({ "{") (expression_statement "uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);" (assignment_expression "uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)((int)ppiVar11[0x24] + -0x30)" (* "*") (cast_expression "(uint *)((int)ppiVar11[0x24] + -0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar11[0x24] + -0x30)" (( "(") (binary_expression "(int)ppiVar11[0x24] + -0x30" (cast_expression "(int)ppiVar11[0x24]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[0x24]" (identifier "ppiVar11") ([ "[") (number_literal "0x24") (] "]"))) (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (} "}"))) (expression_statement "ppiVar11[0xd] = (int *)uVar4;" (assignment_expression "ppiVar11[0xd] = (int *)uVar4" (subscript_expression "ppiVar11[0xd]" (identifier "ppiVar11") ([ "[") (number_literal "0xd") (] "]")) (= "=") (cast_expression "(int *)uVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);" (assignment_expression "ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50)" (subscript_expression "ppiVar11[9]" (identifier "ppiVar11") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int *)*(uint *)(uVar4 - 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*(uint *)(uVar4 - 0x50)" (* "*") (cast_expression "(uint *)(uVar4 - 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 - 0x50)" (( "(") (binary_expression "uVar4 - 0x50" (identifier "uVar4") (- "-") (number_literal "0x50")) () ")")))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" (else "else") (compound_statement "{\n        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);\n      }" ({ "{") (expression_statement "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);" (assignment_expression "ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec)" (subscript_expression "ppiVar11[9]" (identifier "ppiVar11") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(int *)((int)ppiVar11[2] - 0x30ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar11[2] - 0x30ec)" (( "(") (binary_expression "(int)ppiVar11[2] - 0x30ec" (cast_expression "(int)ppiVar11[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[2]" (identifier "ppiVar11") ([ "[") (number_literal "2") (] "]"))) (- "-") (number_literal "0x30ec")) () ")")))) (; ";")) (} "}")))) (do_statement "do {\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      } while( true );" (do "do") (compound_statement "{\n        uVar12 = 0;\n        uVar4 = 0;\n        pbVar9 = (byte *)ppiVar11[1];\n        do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');\n        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }\n        *ppiVar11 = (int *)uVar12;\n        uVar8 = 0;\n        uVar4 = 0;\n        do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');\n        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }\n        if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }\nLAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;\n        ppiVar11[1] = (int *)(pbVar10 + uVar4);\n      }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar9 = (byte *)ppiVar11[1];" (assignment_expression "pbVar9 = (byte *)ppiVar11[1]" (identifier "pbVar9") (= "=") (cast_expression "(byte *)ppiVar11[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar11[1]" (identifier "ppiVar11") ([ "[") (number_literal "1") (] "]")))) (; ";")) (do_statement "do {\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        } while ((char)bVar13 < '\0');" (do "do") (compound_statement "{\n          pbVar10 = pbVar9 + 1;\n          bVar13 = *pbVar9;\n          bVar7 = (byte)uVar4;\n          uVar4 = uVar4 + 7;\n          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n          pbVar9 = pbVar10;\n        }" ({ "{") (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "bVar7 = (byte)uVar4;" (assignment_expression "bVar7 = (byte)uVar4" (identifier "bVar7") (= "=") (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "uVar4 = uVar4 + 7;" (assignment_expression "uVar4 = uVar4 + 7" (identifier "uVar4") (= "=") (binary_expression "uVar4 + 7" (identifier "uVar4") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);" (assignment_expression "uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" (identifier "uVar12") (= "=") (binary_expression "uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" (identifier "uVar12") (| "|") (binary_expression "(bVar13 & 0x7f) << (bVar7 & 0x1f)" (parenthesized_expression "(bVar13 & 0x7f)" (( "(") (binary_expression "bVar13 & 0x7f" (identifier "bVar13") (& "&") (number_literal "0x7f")) () ")")) (<< "<<") (parenthesized_expression "(bVar7 & 0x1f)" (( "(") (binary_expression "bVar7 & 0x1f" (identifier "bVar7") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" (identifier "pbVar9") (= "=") (identifier "pbVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((char)bVar13 < '\0')" (( "(") (binary_expression "(char)bVar13 < '\0'" (cast_expression "(char)bVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar13")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }" (if "if") (parenthesized_expression "((uVar4 < 0x20) && ((bVar13 & 0x40) != 0))" (( "(") (binary_expression "(uVar4 < 0x20) && ((bVar13 & 0x40) != 0)" (parenthesized_expression "(uVar4 < 0x20)" (( "(") (binary_expression "uVar4 < 0x20" (identifier "uVar4") (< "<") (number_literal "0x20")) () ")")) (&& "&&") (parenthesized_expression "((bVar13 & 0x40) != 0)" (( "(") (binary_expression "(bVar13 & 0x40) != 0" (parenthesized_expression "(bVar13 & 0x40)" (( "(") (binary_expression "bVar13 & 0x40" (identifier "bVar13") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));\n        }" ({ "{") (expression_statement "uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));" (assignment_expression "uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f))" (identifier "uVar12") (= "=") (binary_expression "uVar12 | -(1 << ((byte)uVar4 & 0x1f))" (identifier "uVar12") (| "|") (unary_expression "-(1 << ((byte)uVar4 & 0x1f))" (- "-") (parenthesized_expression "(1 << ((byte)uVar4 & 0x1f))" (( "(") (binary_expression "1 << ((byte)uVar4 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar4 & 0x1f)" (( "(") (binary_expression "(byte)uVar4 & 0x1f" (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "*ppiVar11 = (int *)uVar12;" (assignment_expression "*ppiVar11 = (int *)uVar12" (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11")) (= "=") (cast_expression "(int *)uVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar12"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        } while ((char)bVar13 < '\0');" (do "do") (compound_statement "{\n          bVar13 = *pbVar9;\n          pbVar9 = pbVar9 + 1;\n          bVar7 = (byte)uVar8;\n          uVar8 = uVar8 + 7;\n          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);\n        }" ({ "{") (expression_statement "bVar13 = *pbVar9;" (assignment_expression "bVar13 = *pbVar9" (identifier "bVar13") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar7 = (byte)uVar8;" (assignment_expression "bVar7 = (byte)uVar8" (identifier "bVar7") (= "=") (cast_expression "(byte)uVar8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar8"))) (; ";")) (expression_statement "uVar8 = uVar8 + 7;" (assignment_expression "uVar8 = uVar8 + 7" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 7" (identifier "uVar8") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);" (assignment_expression "uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" (identifier "uVar4") (= "=") (binary_expression "uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f)" (identifier "uVar4") (| "|") (binary_expression "(bVar13 & 0x7f) << (bVar7 & 0x1f)" (parenthesized_expression "(bVar13 & 0x7f)" (( "(") (binary_expression "bVar13 & 0x7f" (identifier "bVar13") (& "&") (number_literal "0x7f")) () ")")) (<< "<<") (parenthesized_expression "(bVar7 & 0x1f)" (( "(") (binary_expression "bVar7 & 0x1f" (identifier "bVar7") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((char)bVar13 < '\0')" (( "(") (binary_expression "(char)bVar13 < '\0'" (cast_expression "(char)bVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar13")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }" (if "if") (parenthesized_expression "((uVar8 < 0x20) && ((bVar13 & 0x40) != 0))" (( "(") (binary_expression "(uVar8 < 0x20) && ((bVar13 & 0x40) != 0)" (parenthesized_expression "(uVar8 < 0x20)" (( "(") (binary_expression "uVar8 < 0x20" (identifier "uVar8") (< "<") (number_literal "0x20")) () ")")) (&& "&&") (parenthesized_expression "((bVar13 & 0x40) != 0)" (( "(") (binary_expression "(bVar13 & 0x40) != 0" (parenthesized_expression "(bVar13 & 0x40)" (( "(") (binary_expression "bVar13 & 0x40" (identifier "bVar13") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));\n        }" ({ "{") (expression_statement "uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));" (assignment_expression "uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f))" (identifier "uVar4") (= "=") (binary_expression "uVar4 | -(1 << ((byte)uVar8 & 0x1f))" (identifier "uVar4") (| "|") (unary_expression "-(1 << ((byte)uVar8 & 0x1f))" (- "-") (parenthesized_expression "(1 << ((byte)uVar8 & 0x1f))" (( "(") (binary_expression "1 << ((byte)uVar8 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar8 & 0x1f)" (( "(") (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar8")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (uVar12 == 0) {\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }\n        else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;\n        }" ({ "{") (expression_statement "*(undefined1 *)((int)ppiVar11 + 0xf) = 1;" (assignment_expression "*(undefined1 *)((int)ppiVar11 + 0xf) = 1" (pointer_expression "*(undefined1 *)((int)ppiVar11 + 0xf)" (* "*") (cast_expression "(undefined1 *)((int)ppiVar11 + 0xf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar11 + 0xf)" (( "(") (binary_expression "(int)ppiVar11 + 0xf" (cast_expression "(int)ppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar11")) (+ "+") (number_literal "0xf")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" (else "else") (compound_statement "{\n          if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }\n          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }\n        }" ({ "{") (if_statement "if ((int)uVar12 < 1) {\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }\n          else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" (if "if") (parenthesized_expression "((int)uVar12 < 1)" (( "(") (binary_expression "(int)uVar12 < 1" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;\n            ppiVar11[0xb] = (int *)uVar4;\n            bVar13 = 0;\n            uVar8 = 0;\n            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);\n            do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');\n            uVar4 = (uint)ppiVar11[0xb];\n            bVar13 = uVar8 == 0;\n          }" ({ "{") (if_statement "if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;" (if "if") (parenthesized_expression "(((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0))" (( "(") (binary_expression "((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&\n               (ppiVar11[9] != (int *)0x0)" (parenthesized_expression "((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0)" (( "(") (binary_expression "(*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0" (parenthesized_expression "(*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0)" (( "(") (binary_expression "*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0" (pointer_expression "*(byte *)((int)ppiVar11 + 0xe)" (* "*") (cast_expression "(byte *)((int)ppiVar11 + 0xe)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar11 + 0xe)" (( "(") (binary_expression "(int)ppiVar11 + 0xe" (cast_expression "(int)ppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar11")) (+ "+") (number_literal "0xe")) () ")")))) (& "&") (binary_expression "ppiVar11[10] == (int *)0x0" (subscript_expression "ppiVar11[10]" (identifier "ppiVar11") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppiVar11[9] != (int *)0x0)" (( "(") (binary_expression "ppiVar11[9] != (int *)0x0" (subscript_expression "ppiVar11[9]" (identifier "ppiVar11") ([ "[") (number_literal "9") (] "]")) (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_0017fba0;" (goto "goto") (statement_identifier "LAB_0017fba0") (; ";"))) (expression_statement "ppiVar11[0xb] = (int *)uVar4;" (assignment_expression "ppiVar11[0xb] = (int *)uVar4" (subscript_expression "ppiVar11[0xb]" (identifier "ppiVar11") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(int *)uVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);" (assignment_expression "pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15])" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(~uVar12 + (int)ppiVar11[0x15])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~uVar12 + (int)ppiVar11[0x15])" (( "(") (binary_expression "~uVar12 + (int)ppiVar11[0x15]" (unary_expression "~uVar12" (~ "~") (identifier "uVar12")) (+ "+") (cast_expression "(int)ppiVar11[0x15]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[0x15]" (identifier "ppiVar11") ([ "[") (number_literal "0x15") (] "]")))) () ")")))) (; ";")) (do_statement "do {\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            } while ((char)bVar7 < '\0');" (do "do") (compound_statement "{\n              bVar7 = *pbVar9;\n              bVar3 = bVar13 & 0x1f;\n              bVar13 = bVar13 + 7;\n              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;\n              pbVar9 = pbVar9 + 1;\n            }" ({ "{") (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" (identifier "bVar7") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "bVar3 = bVar13 & 0x1f;" (assignment_expression "bVar3 = bVar13 & 0x1f" (identifier "bVar3") (= "=") (binary_expression "bVar13 & 0x1f" (identifier "bVar13") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "bVar13 = bVar13 + 7;" (assignment_expression "bVar13 = bVar13 + 7" (identifier "bVar13") (= "=") (binary_expression "bVar13 + 7" (identifier "bVar13") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;" (assignment_expression "uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3" (identifier "uVar8") (= "=") (binary_expression "uVar8 | (bVar7 & 0x7f) << bVar3" (identifier "uVar8") (| "|") (binary_expression "(bVar7 & 0x7f) << bVar3" (parenthesized_expression "(bVar7 & 0x7f)" (( "(") (binary_expression "bVar7 & 0x7f" (identifier "bVar7") (& "&") (number_literal "0x7f")) () ")")) (<< "<<") (identifier "bVar3")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((char)bVar7 < '\0')" (( "(") (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar7")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar4 = (uint)ppiVar11[0xb];" (assignment_expression "uVar4 = (uint)ppiVar11[0xb]" (identifier "uVar4") (= "=") (cast_expression "(uint)ppiVar11[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0xb]" (identifier "ppiVar11") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (expression_statement "bVar13 = uVar8 == 0;" (assignment_expression "bVar13 = uVar8 == 0" (identifier "bVar13") (= "=") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" (else "else") (compound_statement "{\n            ppiVar11[-1] = (int *)0x17fb42;\n            iVar5 = FUN_0017f380();\n            if (iVar5 == 0) goto LAB_0017fb5b;\n            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;\n            ppiVar11[-1] = (int *)0x17fb57;\n            bVar13 = FUN_0017f1e0();\n          }" ({ "{") (expression_statement "ppiVar11[-1] = (int *)0x17fb42;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb42" (subscript_expression "ppiVar11[-1]" (identifier "ppiVar11") ([ "[") (number_literal "-1") (] "]")) (= "=") (cast_expression "(int *)0x17fb42" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17fb42"))) (; ";")) (expression_statement "iVar5 = FUN_0017f380();" (assignment_expression "iVar5 = FUN_0017f380()" (identifier "iVar5") (= "=") (call_expression "FUN_0017f380()" (identifier "FUN_0017f380") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0017fb5b;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017fb5b;" (goto "goto") (statement_identifier "LAB_0017fb5b") (; ";"))) (if_statement "if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;" (if "if") (parenthesized_expression "(ppiVar11[9] == (int *)0x0)" (( "(") (binary_expression "ppiVar11[9] == (int *)0x0" (subscript_expression "ppiVar11[9]" (identifier "ppiVar11") ([ "[") (number_literal "9") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0017fb18;" (goto "goto") (statement_identifier "LAB_0017fb18") (; ";"))) (expression_statement "ppiVar11[-1] = (int *)0x17fb57;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb57" (subscript_expression "ppiVar11[-1]" (identifier "ppiVar11") ([ "[") (number_literal "-1") (] "]")) (= "=") (cast_expression "(int *)0x17fb57" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17fb57"))) (; ";")) (expression_statement "bVar13 = FUN_0017f1e0();" (assignment_expression "bVar13 = FUN_0017f1e0()" (identifier "bVar13") (= "=") (call_expression "FUN_0017f1e0()" (identifier "FUN_0017f1e0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (for_statement "for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }" (for "for") (( "(") (; ";") (binary_expression "bVar13 != 0" (identifier "bVar13") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "bVar13 = bVar13 ^ 1" (identifier "bVar13") (= "=") (binary_expression "bVar13 ^ 1" (identifier "bVar13") (^ "^") (number_literal "1"))) () ")") (compound_statement "{\nLAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;\n            if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;\n            if (-1 < (int)uVar12) goto LAB_0017f6ad;\n            pbVar10 = (byte *)ppiVar11[2];\n                    \n            ppiVar11[-1] = (int *)0x17fb9d;\n            FUN_0017f1c0();\nLAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;\n            ppiVar11[-5] = (int *)0x17fbb1;\n            bVar13 = FUN_0017f410();\n          }" ({ "{") (labeled_statement "LAB_0017fb5b:\n            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;" (statement_identifier "LAB_0017fb5b") (: ":") (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;" (if "if") (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" (( "(") (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017f86c;" (goto "goto") (statement_identifier "LAB_0017f86c") (; ";")))) (if_statement "if ((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))\n            goto LAB_0017f6a2;" (if "if") (parenthesized_expression "((ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))" (( "(") (binary_expression "(ppiVar11[10] == (int *)0x0) &&\n               (uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4)" (parenthesized_expression "(ppiVar11[10] == (int *)0x0)" (( "(") (binary_expression "ppiVar11[10] == (int *)0x0" (subscript_expression "ppiVar11[10]" (identifier "ppiVar11") ([ "[") (number_literal "10") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4)" (( "(") (comma_expression "uVar4 = (uint)ppiVar11[5],\n               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (assignment_expression "uVar4 = (uint)ppiVar11[5]" (identifier "uVar4") (= "=") (cast_expression "(uint)ppiVar11[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")))) (, ",") (binary_expression "uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (binary_expression "uVar4 <= ppiVar11[10]" (identifier "uVar4") (<= "<=") (subscript_expression "ppiVar11[10]" (identifier "ppiVar11") ([ "[") (number_literal "10") (] "]"))) (&& "&&") (binary_expression "(uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < ppiVar11[4])" (( "(") (binary_expression "1 < ppiVar11[4]" (number_literal "1") (< "<") (subscript_expression "ppiVar11[4]" (identifier "ppiVar11") ([ "[") (number_literal "4") (] "]"))) () ")"))) (<= "<=") (binary_expression "(int)ppiVar11[10] - uVar4" (cast_expression "(int)ppiVar11[10]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[10]" (identifier "ppiVar11") ([ "[") (number_literal "10") (] "]"))) (- "-") (identifier "uVar4"))))) () ")"))) () ")")) (goto_statement "goto LAB_0017f6a2;" (goto "goto") (statement_identifier "LAB_0017f6a2") (; ";"))) (if_statement "if (-1 < (int)uVar12) goto LAB_0017f6ad;" (if "if") (parenthesized_expression "(-1 < (int)uVar12)" (( "(") (binary_expression "-1 < (int)uVar12" (number_literal "-1") (< "<") (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12"))) () ")")) (goto_statement "goto LAB_0017f6ad;" (goto "goto") (statement_identifier "LAB_0017f6ad") (; ";"))) (expression_statement "pbVar10 = (byte *)ppiVar11[2];" (assignment_expression "pbVar10 = (byte *)ppiVar11[2]" (identifier "pbVar10") (= "=") (cast_expression "(byte *)ppiVar11[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar11[2]" (identifier "ppiVar11") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "ppiVar11[-1] = (int *)0x17fb9d;" (assignment_expression "ppiVar11[-1] = (int *)0x17fb9d" (subscript_expression "ppiVar11[-1]" (identifier "ppiVar11") ([ "[") (number_literal "-1") (] "]")) (= "=") (cast_expression "(int *)0x17fb9d" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17fb9d"))) (; ";")) (expression_statement "FUN_0017f1c0();" (call_expression "FUN_0017f1c0()" (identifier "FUN_0017f1c0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0017fba0:\n            ppiVar11[-4] = (int *)uVar12;" (statement_identifier "LAB_0017fba0") (: ":") (expression_statement "ppiVar11[-4] = (int *)uVar12;" (assignment_expression "ppiVar11[-4] = (int *)uVar12" (subscript_expression "ppiVar11[-4]" (identifier "ppiVar11") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)uVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar12"))) (; ";"))) (expression_statement "ppiVar11[-5] = (int *)0x17fbb1;" (assignment_expression "ppiVar11[-5] = (int *)0x17fbb1" (subscript_expression "ppiVar11[-5]" (identifier "ppiVar11") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0x17fbb1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17fbb1"))) (; ";")) (expression_statement "bVar13 = FUN_0017f410();" (assignment_expression "bVar13 = FUN_0017f410()" (identifier "bVar13") (= "=") (call_expression "FUN_0017f410()" (identifier "FUN_0017f410") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0017fb18:\n        if (uVar4 == 0) goto LAB_0017fbbc;" (statement_identifier "LAB_0017fb18") (: ":") (if_statement "if (uVar4 == 0) goto LAB_0017fbbc;" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017fbbc;" (goto "goto") (statement_identifier "LAB_0017fbbc") (; ";")))) (expression_statement "ppiVar11[1] = (int *)(pbVar10 + uVar4);" (assignment_expression "ppiVar11[1] = (int *)(pbVar10 + uVar4)" (subscript_expression "ppiVar11[1]" (identifier "ppiVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int *)(pbVar10 + uVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar10 + uVar4)" (( "(") (binary_expression "pbVar10 + uVar4" (identifier "pbVar10") (+ "+") (identifier "uVar4")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0017fbc7;" (goto "goto") (statement_identifier "LAB_0017fbc7") (; ";")) (} "}"))) (if_statement "if (uVar4 == 0) {\n    return 8;\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 8;\n  }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}"))) (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }" (if "if") (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" (( "(") (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 8;\n  }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}"))) (expression_statement "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);" (assignment_expression "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8)" (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11")) (= "=") (cast_expression "(int *)((uint)ppiVar11[0x21] & 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "8")) () ")")))) (; ";")) (if_statement "if ((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))\n  goto LAB_0017f6ad;" (if "if") (parenthesized_expression "((((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))" (( "(") (binary_expression "(((uint)ppiVar11[0x21] & 8) == 0) &&\n     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) == 0)" (( "(") (binary_expression "((uint)ppiVar11[0x21] & 8) == 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5])" (( "(") (binary_expression "ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (binary_expression "ppiVar11[5] == (int *)0x0" (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < ppiVar11[4])" (( "(") (binary_expression "1 < ppiVar11[4]" (number_literal "1") (< "<") (subscript_expression "ppiVar11[4]" (identifier "ppiVar11") ([ "[") (number_literal "4") (] "]"))) () ")"))) (<= "<=") (binary_expression "(uint)-(int)ppiVar11[5]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (cast_expression "(int)ppiVar11[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")))))) () ")"))) () ")")) (goto_statement "goto LAB_0017f6ad;" (goto "goto") (statement_identifier "LAB_0017f6ad") (; ";"))) (goto_statement "goto LAB_0017f974;" (goto "goto") (statement_identifier "LAB_0017f974") (; ";")) (labeled_statement "LAB_0017fbbc:\n  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }" (statement_identifier "LAB_0017fbbc") (: ":") (if_statement "if (*(char *)((int)ppiVar11 + 0xf) == '\0') {\n    return 8;\n  }" (if "if") (parenthesized_expression "(*(char *)((int)ppiVar11 + 0xf) == '\0')" (( "(") (binary_expression "*(char *)((int)ppiVar11 + 0xf) == '\0'" (pointer_expression "*(char *)((int)ppiVar11 + 0xf)" (* "*") (cast_expression "(char *)((int)ppiVar11 + 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar11 + 0xf)" (( "(") (binary_expression "(int)ppiVar11 + 0xf" (cast_expression "(int)ppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar11")) (+ "+") (number_literal "0xf")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return 8;\n  }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}")))) (labeled_statement "LAB_0017fbc7:\n  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);" (statement_identifier "LAB_0017fbc7") (: ":") (expression_statement "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);" (assignment_expression "*ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1)" (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11")) (= "=") (cast_expression "(int *)((uint)ppiVar11[0x21] & 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if (((uint)ppiVar11[0x21] & 1) != 0) {\n    return 8;\n  }" (if "if") (parenthesized_expression "(((uint)ppiVar11[0x21] & 1) != 0)" (( "(") (binary_expression "((uint)ppiVar11[0x21] & 1) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 1)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 1" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 8;\n  }" ({ "{") (return_statement "return 8;" (return "return") (number_literal "8") (; ";")) (} "}"))) (if_statement "if ((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;" (if "if") (parenthesized_expression "((((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])))" (( "(") (binary_expression "(((uint)ppiVar11[0x21] & 8) != 0) ||\n     (ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))" (parenthesized_expression "(((uint)ppiVar11[0x21] & 8) != 0)" (( "(") (binary_expression "((uint)ppiVar11[0x21] & 8) != 0" (parenthesized_expression "((uint)ppiVar11[0x21] & 8)" (( "(") (binary_expression "(uint)ppiVar11[0x21] & 8" (cast_expression "(uint)ppiVar11[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppiVar11[0x21]" (identifier "ppiVar11") ([ "[") (number_literal "0x21") (] "]"))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))" (( "(") (binary_expression "ppiVar11[5] <= *ppiVar11 &&\n      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])" (binary_expression "ppiVar11[5] <= *ppiVar11" (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")) (<= "<=") (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11"))) (&& "&&") (binary_expression "(uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5])" (call_expression "(uint)(1 < ppiVar11[4])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < ppiVar11[4])" (( "(") (binary_expression "1 < ppiVar11[4]" (number_literal "1") (< "<") (subscript_expression "ppiVar11[4]" (identifier "ppiVar11") ([ "[") (number_literal "4") (] "]"))) () ")"))) (<= "<=") (call_expression "(uint)((int)*ppiVar11 - (int)ppiVar11[5])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)*ppiVar11 - (int)ppiVar11[5])" (( "(") (binary_expression "(int)*ppiVar11 - (int)ppiVar11[5]" (cast_expression "(int)*ppiVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11"))) (- "-") (cast_expression "(int)ppiVar11[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar11[5]" (identifier "ppiVar11") ([ "[") (number_literal "5") (] "]")))) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_0017f6ad;" (goto "goto") (statement_identifier "LAB_0017f6ad") (; ";"))) (labeled_statement "LAB_0017f974:\n  *ppiVar11 = (int *)0x0;" (statement_identifier "LAB_0017f974") (: ":") (expression_statement "*ppiVar11 = (int *)0x0;" (assignment_expression "*ppiVar11 = (int *)0x0" (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (labeled_statement "LAB_0017f6ad:\n  ppiVar11[-2] = ppiVar11[0x24];" (statement_identifier "LAB_0017f6ad") (: ":") (expression_statement "ppiVar11[-2] = ppiVar11[0x24];" (assignment_expression "ppiVar11[-2] = ppiVar11[0x24]" (subscript_expression "ppiVar11[-2]" (identifier "ppiVar11") ([ "[") (number_literal "-2") (] "]")) (= "=") (subscript_expression "ppiVar11[0x24]" (identifier "ppiVar11") ([ "[") (number_literal "0x24") (] "]"))) (; ";"))) (expression_statement "ppiVar11[-3] = (int *)0x0;" (assignment_expression "ppiVar11[-3] = (int *)0x0" (subscript_expression "ppiVar11[-3]" (identifier "ppiVar11") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" (identifier "ppiVar11") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "ppiVar11[0x25]" (identifier "ppiVar11") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "ppiVar11[-5] = (int *)0x17f6cb;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6cb" (subscript_expression "ppiVar11[-5]" (identifier "ppiVar11") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0x17f6cb" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f6cb"))) (; ";")) (expression_statement "FUN_00217390();" (call_expression "FUN_00217390()" (identifier "FUN_00217390") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppiVar11[-2] = *ppiVar11;" (assignment_expression "ppiVar11[-2] = *ppiVar11" (subscript_expression "ppiVar11[-2]" (identifier "ppiVar11") ([ "[") (number_literal "-2") (] "]")) (= "=") (pointer_expression "*ppiVar11" (* "*") (identifier "ppiVar11"))) (; ";")) (expression_statement "ppiVar11[-3] = (int *)0x2;" (assignment_expression "ppiVar11[-3] = (int *)0x2" (subscript_expression "ppiVar11[-3]" (identifier "ppiVar11") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" (identifier "ppiVar11") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "ppiVar11[0x25]" (identifier "ppiVar11") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "ppiVar11[-5] = (int *)0x17f6e0;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6e0" (subscript_expression "ppiVar11[-5]" (identifier "ppiVar11") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0x17f6e0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f6e0"))) (; ";")) (expression_statement "FUN_00217390();" (call_expression "FUN_00217390()" (identifier "FUN_00217390") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppiVar11[-3] = ppiVar11[6];" (assignment_expression "ppiVar11[-3] = ppiVar11[6]" (subscript_expression "ppiVar11[-3]" (identifier "ppiVar11") ([ "[") (number_literal "-3") (] "]")) (= "=") (subscript_expression "ppiVar11[6]" (identifier "ppiVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppiVar11[-4] = ppiVar11[0x25];" (assignment_expression "ppiVar11[-4] = ppiVar11[0x25]" (subscript_expression "ppiVar11[-4]" (identifier "ppiVar11") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "ppiVar11[0x25]" (identifier "ppiVar11") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "ppiVar11[-5] = (int *)0x17f6f2;" (assignment_expression "ppiVar11[-5] = (int *)0x17f6f2" (subscript_expression "ppiVar11[-5]" (identifier "ppiVar11") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0x17f6f2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17f6f2"))) (; ";")) (expression_statement "FUN_00217420();" (call_expression "FUN_00217420()" (identifier "FUN_00217420") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 7;" (return "return") (number_literal "7") (; ";")) (} "}")))

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

type_1
function_1
          (int var_1,type_2 var_6,type_2 var_3,int var_2,int var_8,type_3 *param_6)

{
  type_1 uVar1;
  bool var_5;
  type_4 var_23;
  type_5 uVar4;
  type_5 *puVar5;
  type_2 var_24;
  int var_14;
  type_1 uVar8;
  type_6 *var_32;
  type_4 var_22;
  type_2 var_31;
  type_4 *var_16;
  type_6 *extraout_EDX;
  type_4 *var_19;
  type_2 **var_35;
  type_2 var_21;
  type_2 var_30;
  type_4 var_20;
  type_2 *local_7c;
  type_2 *local_78;
  type_7 **local_74;
  bool var_7;
  bool bStack_6d;
  type_2 var_27;
  type_2 var_4;
  int local_64;
  type_5 *var_12;
  type_8 *local_5c;
  type_1 local_48;
  int var_15;
  type_2 var_25;
  type_2 var_26;
  type_2 local_38;
  int local_34 [2];
  type_1 local_2c;
  type_4 *var_17;
  type_5 local_20;
  type_5 local_1f;
  
  var_35 = &local_7c;
  local_74 = &_GLOBAL_OFFSET_TABLE_;
  local_48 = 0;
  var_15 = 0;
  if (var_1 != 1) {
    return 3;
  }
  var_4 = var_2 + -0x474e5544 + (type_2)(0x432b2aff < var_3);
  var_27 = var_3 + 0xbcd4d500;
  var_5 = (type_2)(1 < var_3 + 0xbcd4d500) <= -var_4;
  var_7 = var_4 == 0 && var_5;
  bStack_6d = var_6 == 6 && var_7;
  if (var_6 == 6 && (var_4 == 0 && var_5)) {
    local_64 = *(int *)(var_8 + -0xc);
    if (*(int *)(var_8 + -0xc) != 0) {
      local_7c = *(type_2 **)(var_8 + -0x18);
      var_12 = *(type_5 **)(var_8 + -0x10);
LAB_0017f6a2:
      if ((int)*var_35 < 0) {
        ((int *)var_35)[-1] = 0x17f994;
        var_9((type_3 *)((int *)var_35)[0x25],(type_5 *)((int *)var_35)[7],
                          (type_8 *)((int *)var_35 + 0x12));
        ((int *)var_35)[-1] = 0x17f9a5;
        var_14 = var_10
                          ((type_5)((int *)var_35)[0x17],(type_3 *)((int *)var_35)[0x25]
                          );
        ((int *)var_35)[0x14] = var_14;
        ((int *)var_35)[-1] = 0x17f9ba;
        uVar8 = var_10
                          ((type_5)((int *)var_35)[0x17],(type_3 *)((int *)var_35)[0x25]
                          );
        *(type_1 *)(((int *)var_35)[0x24] + -0xc) = uVar8;
      }
      goto LAB_0017f6ad;
    }
  }
  else {
    var_12 = (type_5 *)var_11();
    var_35 = &local_7c;
    if (var_12 == (type_5 *)0x0) {
      return 8;
    }
    local_5c = (type_8 *)local_34;
    var_16 = (type_4 *)var_9(param_6,var_12,local_5c);
    local_2c = var_10(local_20,param_6);
    var_14 = var_13();
    var_24 = var_14 - (type_2)(var_15 == 0);
    if (var_16 < var_17) {
      local_7c = &var_26;
      local_78 = &local_38;
      do {
        uVar4 = local_1f;
        var_30 = var_10(local_1f,(type_3 *)0x0);
        puVar5 = (type_5 *)var_18(uVar4,var_30,var_16,&var_25);
        uVar4 = local_1f;
        var_30 = var_10(local_1f,(type_3 *)0x0);
        puVar5 = (type_5 *)var_18(uVar4,var_30,puVar5,local_7c);
        uVar4 = local_1f;
        var_30 = var_10(local_1f,(type_3 *)0x0);
        var_21 = 0;
        var_19 = (type_4 *)var_18(uVar4,var_30,puVar5,local_78);
        var_20 = 0;
        do {
          var_16 = var_19 + 1;
          var_22 = *var_19;
          var_23 = var_20 & 0x1f;
          var_20 = var_20 + 7;
          var_21 = var_21 | (var_22 & 0x7f) << var_23;
          var_19 = var_16;
        } while ((char)var_22 < '\0');
        if (var_24 < var_25 + local_34[0]) break;
        if (var_24 < var_25 + local_34[0] + var_26) goto LAB_0017f8ce;
      } while (var_16 < var_17);
    }
    var_35 = &local_7c;
    if ((var_6 & 1) != 0) {
      local_7c = (type_2 *)0x0;
      local_64 = 0;
      local_78 = (type_2 *)0x0;
LAB_0017f86c:
      if (var_35[5] != (type_2 *)0x0 || (type_2)-(int)var_35[5] < (type_2)(1 < var_35[4])) {
        return 6;
      }
      var_14 = (int)var_35[0x24];
      uVar8 = var_35[0xd];
      *(type_2 **)(var_14 + -0x18) = *var_35;
      uVar1 = var_35[1];
      *(type_1 *)(var_14 + -8) = uVar8;
      *(type_1 *)(var_14 + -0x14) = uVar1;
      *(type_2 **)(var_14 + -0x10) = var_35[7];
      *(type_2 **)(var_14 + -0xc) = var_35[6];
      return 6;
    }
    if (((var_6 & 8) != 0) ||
       (var_21 = var_4, var_4 != 0 || -var_4 < (type_2)(1 < var_27))) {
                    /* WARNING: Subroutine does not return */
      std::var_28();
    }
  }
  var_35 = (type_2 **)&stack0xffffff74;
  var_29();
LAB_0017f8ce:
  if (var_35[0x11] == (type_2 *)0x0) {
    return 8;
  }
  var_24 = (int)var_35[0x11] + (int)var_35[0x13];
  var_35[6] = (type_2 *)var_24;
  if (var_21 != 0) {
    var_35[1] = (type_2 *)(((int)var_35[0x16] - 1U) + var_21);
    if (var_35[6] == (type_2 *)0x0) {
      return 8;
    }
    if (var_35[1] != (type_2 *)0x0) {
      var_35[10] = (type_2 *)((type_2)var_35[0x21] & 8);
      if (((type_2)var_35[0x21] & 8) == 0) {
        var_35[9] = (type_2 *)((int)var_35[2] - 0x30e4);
        if (var_35[5] == (type_2 *)0x0 && (type_2)(1 < var_35[4]) <= (type_2)-(int)var_35[5]) {
          var_24 = (int)var_35[0x24] + 0x20;
          if ((*(type_4 *)var_35[0x24] & 1) != 0) {
            var_24 = *(type_2 *)((int)var_35[0x24] + -0x30);
          }
          var_35[0xd] = (type_2 *)var_24;
          var_35[9] = (type_2 *)*(type_2 *)(var_24 - 0x50);
        }
      }
      else {
        var_35[9] = (type_2 *)((int)var_35[2] - 0x30ec);
      }
      do {
        var_30 = 0;
        var_24 = 0;
        var_16 = (type_4 *)var_35[1];
        do {
          var_19 = var_16 + 1;
          var_20 = *var_16;
          var_22 = (type_4)var_24;
          var_24 = var_24 + 7;
          var_30 = var_30 | (var_20 & 0x7f) << (var_22 & 0x1f);
          var_16 = var_19;
        } while ((char)var_20 < '\0');
        if ((var_24 < 0x20) && ((var_20 & 0x40) != 0)) {
          var_30 = var_30 | -(1 << ((type_4)var_24 & 0x1f));
        }
        *var_35 = (type_2 *)var_30;
        var_31 = 0;
        var_24 = 0;
        do {
          var_20 = *var_16;
          var_16 = var_16 + 1;
          var_22 = (type_4)var_31;
          var_31 = var_31 + 7;
          var_24 = var_24 | (var_20 & 0x7f) << (var_22 & 0x1f);
        } while ((char)var_20 < '\0');
        if ((var_31 < 0x20) && ((var_20 & 0x40) != 0)) {
          var_24 = var_24 | -(1 << ((type_4)var_31 & 0x1f));
        }
        if (var_30 == 0) {
          *(type_9 *)((int)var_35 + 0xf) = 1;
        }
        else {
          if ((int)var_30 < 1) {
            if (((*(type_4 *)((int)var_35 + 0xe) & var_35[10] == (type_2 *)0x0) != 0) &&
               (var_32 = (type_6 *)var_35[9], var_32 != (type_6 *)0x0)) goto LAB_0017fba0;
            var_35[0xb] = (type_2 *)var_24;
            var_20 = 0;
            var_31 = 0;
            var_16 = (type_4 *)(~var_30 + (int)var_35[0x15]);
            do {
              var_22 = *var_16;
              var_23 = var_20 & 0x1f;
              var_20 = var_20 + 7;
              var_31 = var_31 | (var_22 & 0x7f) << var_23;
              var_16 = var_16 + 1;
            } while ((char)var_22 < '\0');
            var_24 = (type_2)var_35[0xb];
            var_20 = var_31 == 0;
          }
          else {
            var_35[-1] = (type_2 *)0x17fb42;
            var_32 = (type_6 *)var_33((type_8 *)var_35[8],var_30);
            if (var_32 == (type_6 *)0x0) goto LAB_0017fb5b;
            if ((type_6 *)var_35[9] == (type_6 *)0x0) goto LAB_0017fb18;
            var_35[-1] = (type_2 *)0x17fb57;
            var_20 = var_34(var_32,(type_6 *)var_35[9],var_35 + 0xd);
          }
          for (; var_20 != 0; var_20 = var_20 ^ 1) {
LAB_0017fb5b:
            if (((type_2)var_35[0x21] & 1) != 0) goto LAB_0017f86c;
            if ((var_35[10] == (type_2 *)0x0) &&
               (var_24 = (type_2)var_35[5],
               var_24 <= var_35[10] && (type_2)(1 < var_35[4]) <= (int)var_35[10] - var_24))
            goto LAB_0017f6a2;
            if (-1 < (int)var_30) goto LAB_0017f6ad;
            var_19 = (type_4 *)var_35[2];
                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */
            var_35[-1] = (type_2 *)0x17fb9d;
            std::var_36();
            var_32 = extraout_EDX;
LAB_0017fba0:
            var_35[-4] = (type_2 *)var_30;
            var_35[-5] = (type_2 *)0x17fbb1;
            var_20 = var_37
                               ((type_8 *)var_35[8],var_32,var_35[0xd],
                                (long)var_35[-4]);
          }
        }
LAB_0017fb18:
        if (var_24 == 0) goto LAB_0017fbbc;
        var_35[1] = (type_2 *)(var_19 + var_24);
      } while( true );
    }
    goto LAB_0017fbc7;
  }
  if (var_24 == 0) {
    return 8;
  }
  if (((type_2)var_35[0x21] & 1) != 0) {
    return 8;
  }
  *var_35 = (type_2 *)((type_2)var_35[0x21] & 8);
  if ((((type_2)var_35[0x21] & 8) == 0) &&
     (var_35[5] == (type_2 *)0x0 && (type_2)(1 < var_35[4]) <= (type_2)-(int)var_35[5]))
  goto LAB_0017f6ad;
  goto LAB_0017f974;
LAB_0017fbbc:
  if (*(char *)((int)var_35 + 0xf) == '\0') {
    return 8;
  }
LAB_0017fbc7:
  *var_35 = (type_2 *)((type_2)var_35[0x21] & 1);
  if (((type_2)var_35[0x21] & 1) != 0) {
    return 8;
  }
  if ((((type_2)var_35[0x21] & 8) != 0) ||
     (var_35[5] <= *var_35 &&
      (type_2)(1 < var_35[4]) <= (type_2)((int)*var_35 - (int)var_35[5]))) goto LAB_0017f6ad;
LAB_0017f974:
  *var_35 = (type_2 *)0x0;
LAB_0017f6ad:
  var_35[-2] = var_35[0x24];
  var_35[-3] = (type_2 *)0x0;
  var_35[-4] = var_35[0x25];
  var_35[-5] = (type_2 *)0x17f6cb;
  var_38();
  var_35[-2] = *var_35;
  var_35[-3] = (type_2 *)0x2;
  var_35[-4] = var_35[0x25];
  var_35[-5] = (type_2 *)0x17f6e0;
  var_38();
  var_35[-3] = var_35[6];
  var_35[-4] = var_35[0x25];
  var_35[-5] = (type_2 *)0x17f6f2;
  var_39();
  return 7;
}


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

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

undefined4 MASKED(int param_1,uint param_2,uint param_3,int param_4,int *param_5,int *param_6)

{
  undefined4 uVar1;
  bool bVar2;
  byte bVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  byte bVar7;
  uint uVar8;
  byte *pbVar9;
  byte *pbVar10;
  int **ppiVar11;
  uint unaff_EBP;
  uint uVar12;
  byte bVar13;
  int *local_8c;
  int *local_88;
  undefined *puStack_80;
  int *local_7c;
  int *local_78;
  undefined **local_74;
  bool bStack_6e;
  bool bStack_6d;
  uint local_6c;
  uint local_68;
  int local_64;
  int local_60;
  int *local_5c;
  undefined4 local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int local_34 [2];
  undefined4 local_2c;
  byte *local_24;
  
  ppiVar11 = &local_7c;
  local_74 = &__DT_PLTGOT;
  local_48 = 0;
  local_44 = 0;
  if (param_1 != 1) {
    return 3;
  }
  local_68 = param_4 + -0x474e5544 + (uint)(0x432b2aff < param_3);
  local_6c = param_3 + 0xbcd4d500;
  bVar2 = (uint)(1 < param_3 + 0xbcd4d500) <= -local_68;
  bStack_6e = local_68 == 0 && bVar2;
  bStack_6d = param_2 == 6 && bStack_6e;
  if (param_2 == 6 && (local_68 == 0 && bVar2)) {
    local_64 = param_5[-3];
    if (param_5[-3] != 0) {
      local_7c = (int *)param_5[-6];
      local_60 = param_5[-4];
LAB_0017f6a2:
      if ((int)*ppiVar11 < 0) {
        ((int *)ppiVar11)[-1] = 0x17f994;
        FUN_0017f500();
        ((int *)ppiVar11)[-1] = 0x17f9a5;
        iVar5 = FUN_0017f480();
        ((int *)ppiVar11)[0x14] = iVar5;
        ((int *)ppiVar11)[-1] = 0x17f9ba;
        uVar6 = FUN_0017f480();
        *(undefined4 *)(((int *)ppiVar11)[0x24] + -0xc) = uVar6;
      }
      goto LAB_0017f6ad;
    }
  }
  else {
    local_8c = param_6;
    local_60 = FUN_00217430();
    ppiVar11 = &local_7c;
    if (local_60 == 0) {
      return 8;
    }
    local_5c = local_34;
    puStack_80 = (undefined *)0x17f754;
    pbVar9 = (byte *)FUN_0017f500();
    puStack_80 = (undefined *)0x17f767;
    local_2c = FUN_0017f480();
    local_88 = &local_44;
    local_8c = param_6;
    iVar5 = FUN_00217400();
    uVar4 = iVar5 - (uint)(local_44 == 0);
    if (pbVar9 < local_24) {
      local_7c = &local_3c;
      local_78 = &local_38;
      do {
        puStack_80 = (undefined *)0x17f7be;
        FUN_0017f480();
        local_8c = &local_40;
        FUN_0017f230();
        puStack_80 = (undefined *)0x17f7e0;
        FUN_0017f480();
        local_8c = local_7c;
        FUN_0017f230();
        puStack_80 = (undefined *)0x17f805;
        FUN_0017f480();
        unaff_EBP = 0;
        local_8c = local_78;
        pbVar9 = (byte *)FUN_0017f230();
        bVar13 = 0;
        do {
          pbVar10 = pbVar9 + 1;
          bVar7 = *pbVar9;
          bVar3 = bVar13 & 0x1f;
          bVar13 = bVar13 + 7;
          unaff_EBP = unaff_EBP | (bVar7 & 0x7f) << bVar3;
          pbVar9 = pbVar10;
        } while ((char)bVar7 < '\0');
        if (uVar4 < (uint)(local_40 + local_34[0])) break;
        if (uVar4 < (uint)(local_40 + local_34[0] + local_3c)) goto LAB_0017f8ce;
      } while (pbVar10 < local_24);
    }
    ppiVar11 = &local_7c;
    if ((param_2 & 1) != 0) {
      local_7c = (int *)0x0;
      local_64 = 0;
      local_78 = (int *)0x0;
LAB_0017f86c:
      if (ppiVar11[5] != (int *)0x0 || (uint)-(int)ppiVar11[5] < (uint)(1 < ppiVar11[4])) {
        return 6;
      }
      iVar5 = (int)ppiVar11[0x24];
      uVar6 = ppiVar11[0xd];
      *(int **)(iVar5 + -0x18) = *ppiVar11;
      uVar1 = ppiVar11[1];
      *(undefined4 *)(iVar5 + -8) = uVar6;
      *(undefined4 *)(iVar5 + -0x14) = uVar1;
      *(int **)(iVar5 + -0x10) = ppiVar11[7];
      *(int **)(iVar5 + -0xc) = ppiVar11[6];
      return 6;
    }
    if (((param_2 & 8) != 0) ||
       (unaff_EBP = local_68, local_68 != 0 || -local_68 < (uint)(1 < local_6c))) {
                    /* WARNING: Subroutine does not return */
      puStack_80 = &UNK_0017f928;
      FUN_0017f140();
    }
  }
  ppiVar11 = &local_8c;
  local_8c = param_5;
  FUN_00180050();
LAB_0017f8ce:
  if (ppiVar11[0x11] == (int *)0x0) {
    return 8;
  }
  uVar4 = (int)ppiVar11[0x11] + (int)ppiVar11[0x13];
  ppiVar11[6] = (int *)uVar4;
  if (unaff_EBP != 0) {
    ppiVar11[1] = (int *)(((int)ppiVar11[0x16] - 1U) + unaff_EBP);
    if (ppiVar11[6] == (int *)0x0) {
      return 8;
    }
    if (ppiVar11[1] != (int *)0x0) {
      ppiVar11[10] = (int *)((uint)ppiVar11[0x21] & 8);
      if (((uint)ppiVar11[0x21] & 8) == 0) {
        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30e4);
        if (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]) {
          uVar4 = (int)ppiVar11[0x24] + 0x20;
          if ((*(byte *)ppiVar11[0x24] & 1) != 0) {
            uVar4 = *(uint *)((int)ppiVar11[0x24] + -0x30);
          }
          ppiVar11[0xd] = (int *)uVar4;
          ppiVar11[9] = (int *)*(uint *)(uVar4 - 0x50);
        }
      }
      else {
        ppiVar11[9] = (int *)((int)ppiVar11[2] - 0x30ec);
      }
      do {
        uVar12 = 0;
        uVar4 = 0;
        pbVar9 = (byte *)ppiVar11[1];
        do {
          pbVar10 = pbVar9 + 1;
          bVar13 = *pbVar9;
          bVar7 = (byte)uVar4;
          uVar4 = uVar4 + 7;
          uVar12 = uVar12 | (bVar13 & 0x7f) << (bVar7 & 0x1f);
          pbVar9 = pbVar10;
        } while ((char)bVar13 < '\0');
        if ((uVar4 < 0x20) && ((bVar13 & 0x40) != 0)) {
          uVar12 = uVar12 | -(1 << ((byte)uVar4 & 0x1f));
        }
        *ppiVar11 = (int *)uVar12;
        uVar8 = 0;
        uVar4 = 0;
        do {
          bVar13 = *pbVar9;
          pbVar9 = pbVar9 + 1;
          bVar7 = (byte)uVar8;
          uVar8 = uVar8 + 7;
          uVar4 = uVar4 | (bVar13 & 0x7f) << (bVar7 & 0x1f);
        } while ((char)bVar13 < '\0');
        if ((uVar8 < 0x20) && ((bVar13 & 0x40) != 0)) {
          uVar4 = uVar4 | -(1 << ((byte)uVar8 & 0x1f));
        }
        if (uVar12 == 0) {
          *(undefined1 *)((int)ppiVar11 + 0xf) = 1;
        }
        else {
          if ((int)uVar12 < 1) {
            if (((*(byte *)((int)ppiVar11 + 0xe) & ppiVar11[10] == (int *)0x0) != 0) &&
               (ppiVar11[9] != (int *)0x0)) goto LAB_0017fba0;
            ppiVar11[0xb] = (int *)uVar4;
            bVar13 = 0;
            uVar8 = 0;
            pbVar9 = (byte *)(~uVar12 + (int)ppiVar11[0x15]);
            do {
              bVar7 = *pbVar9;
              bVar3 = bVar13 & 0x1f;
              bVar13 = bVar13 + 7;
              uVar8 = uVar8 | (bVar7 & 0x7f) << bVar3;
              pbVar9 = pbVar9 + 1;
            } while ((char)bVar7 < '\0');
            uVar4 = (uint)ppiVar11[0xb];
            bVar13 = uVar8 == 0;
          }
          else {
            ppiVar11[-1] = (int *)0x17fb42;
            iVar5 = FUN_0017f380();
            if (iVar5 == 0) goto LAB_0017fb5b;
            if (ppiVar11[9] == (int *)0x0) goto LAB_0017fb18;
            ppiVar11[-1] = (int *)0x17fb57;
            bVar13 = FUN_0017f1e0();
          }
          for (; bVar13 != 0; bVar13 = bVar13 ^ 1) {
LAB_0017fb5b:
            if (((uint)ppiVar11[0x21] & 1) != 0) goto LAB_0017f86c;
            if ((ppiVar11[10] == (int *)0x0) &&
               (uVar4 = (uint)ppiVar11[5],
               uVar4 <= ppiVar11[10] && (uint)(1 < ppiVar11[4]) <= (int)ppiVar11[10] - uVar4))
            goto LAB_0017f6a2;
            if (-1 < (int)uVar12) goto LAB_0017f6ad;
            pbVar10 = (byte *)ppiVar11[2];
                    /* try { // try from 0017fb98 to 0017fb9c has its CatchHandler @ 0017fc43 */
            ppiVar11[-1] = (int *)0x17fb9d;
            FUN_0017f1c0();
LAB_0017fba0:
            ppiVar11[-4] = (int *)uVar12;
            ppiVar11[-5] = (int *)0x17fbb1;
            bVar13 = FUN_0017f410();
          }
        }
LAB_0017fb18:
        if (uVar4 == 0) goto LAB_0017fbbc;
        ppiVar11[1] = (int *)(pbVar10 + uVar4);
      } while( true );
    }
    goto LAB_0017fbc7;
  }
  if (uVar4 == 0) {
    return 8;
  }
  if (((uint)ppiVar11[0x21] & 1) != 0) {
    return 8;
  }
  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 8);
  if ((((uint)ppiVar11[0x21] & 8) == 0) &&
     (ppiVar11[5] == (int *)0x0 && (uint)(1 < ppiVar11[4]) <= (uint)-(int)ppiVar11[5]))
  goto LAB_0017f6ad;
  goto LAB_0017f974;
LAB_0017fbbc:
  if (*(char *)((int)ppiVar11 + 0xf) == '\0') {
    return 8;
  }
LAB_0017fbc7:
  *ppiVar11 = (int *)((uint)ppiVar11[0x21] & 1);
  if (((uint)ppiVar11[0x21] & 1) != 0) {
    return 8;
  }
  if ((((uint)ppiVar11[0x21] & 8) != 0) ||
     (ppiVar11[5] <= *ppiVar11 &&
      (uint)(1 < ppiVar11[4]) <= (uint)((int)*ppiVar11 - (int)ppiVar11[5]))) goto LAB_0017f6ad;
LAB_0017f974:
  *ppiVar11 = (int *)0x0;
LAB_0017f6ad:
  ppiVar11[-2] = ppiVar11[0x24];
  ppiVar11[-3] = (int *)0x0;
  ppiVar11[-4] = ppiVar11[0x25];
  ppiVar11[-5] = (int *)0x17f6cb;
  FUN_00217390();
  ppiVar11[-2] = *ppiVar11;
  ppiVar11[-3] = (int *)0x2;
  ppiVar11[-4] = ppiVar11[0x25];
  ppiVar11[-5] = (int *)0x17f6e0;
  FUN_00217390();
  ppiVar11[-3] = ppiVar11[6];
  ppiVar11[-4] = ppiVar11[0x25];
  ppiVar11[-5] = (int *)0x17f6f2;
  FUN_00217420();
  return 7;
}

