
/* std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::num_get<wchar_t,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_extract_int[abi:cxx11]<unsigned long>(std::istreambuf_iterator<wchar_t,
   std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::ios_base&, std::_Ios_Iostate&, unsigned long&) const */

undefined4 *
std::num_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
_M_extract_int_abi_cxx11_<unsigned_long>
          (undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,
          int param_7,uint *param_8,uint *param_9)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  char cVar8;
  int iVar6;
  uint uVar7;
  __numpunct_cache<wchar_t> *this;
  int *piVar9;
  bool bVar10;
  int iVar11;
  uint uVar12;
  bool bVar13;
  uint uVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  int *local_res8;
  int local_resc;
  uint *local_68;
  uint local_64;
  uint local_60 [4];
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  int local_3c;
  uint local_38;
  uint **local_34;
  uint local_30;
  
  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);
  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar11 = *piVar9;
  if (iVar11 == 0) {
                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */
    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);
    *(undefined4 *)(this + 4) = 0;
    *(undefined4 *)(this + 8) = 0;
    *(undefined4 *)(this + 0xc) = 0;
    puVar2 = PTR_vtable_0043237c;
    this[0x10] = (__numpunct_cache<wchar_t>)0x0;
    *(undefined4 *)(this + 0x14) = 0;
    *(undefined4 *)(this + 0x18) = 0;
    *(undefined **)this = puVar2 + 8;
    *(undefined4 *)(this + 0x1c) = 0;
    *(undefined4 *)(this + 0x20) = 0;
    *(undefined4 *)(this + 0x24) = 0;
    *(undefined4 *)(this + 0x28) = 0;
                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */
    this[0x124] = (__numpunct_cache<wchar_t>)0x0;
    __numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));
    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);
    iVar11 = *piVar9;
  }
  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;
  if (uVar16 == 0x40) {
    uVar4 = 8;
  }
  else {
    uVar4 = 10;
    if (uVar16 == 8) {
      uVar4 = 0x10;
    }
  }
  iVar3 = param_4;
  local_res8 = param_3;
  if ((param_3 != (int *)0x0) && (param_4 == -1)) {
    if ((int *)param_3[2] < (int *)param_3[3]) {
      iVar3 = *(int *)param_3[2];
    }
    else {
      iVar3 = (**(code **)(*param_3 + 0x24))();
    }
    if (iVar3 == -1) {
      local_res8 = (int *)0x0;
    }
  }
  local_resc = param_4;
  if ((param_5 == (int *)0x0) || (param_6 != -1)) {
    if ((param_6 == -1) == (iVar3 == -1)) goto LAB_0033b298;
LAB_0033ad4c:
    if ((local_res8 != (int *)0x0) && (param_4 == -1)) {
      if ((int *)local_res8[2] < (int *)local_res8[3]) {
        param_4 = *(int *)local_res8[2];
      }
      else {
        param_4 = (**(code **)(*local_res8 + 0x24))();
      }
      if (param_4 == -1) {
        local_res8 = (int *)0x0;
      }
    }
    cVar8 = *(char *)(iVar11 + 0x10);
    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == param_4);
    if ((*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4)) {
      local_38 = 0;
LAB_0033afc8:
      iVar3 = 0;
      bVar13 = false;
      do {
        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {
          if (uVar4 == 0x10) {
            local_60[0] = local_60[0] & 0xffffff;
            uVar16 = 0;
            local_48 = 0x16;
            goto LAB_0033b0e0;
          }
          uVar16 = 0;
          goto LAB_0033ae20;
        }
        if (*(int *)(iVar11 + 0x24) == param_4) break;
        if (*(int *)(iVar11 + 0xcc) == param_4) {
          if (bVar13) {
            if (uVar4 != 10) goto LAB_0033b008;
            if (uVar16 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
LAB_0033b4b4:
              iVar3 = iVar3 + 1;
              bVar13 = true;
            }
          }
          else {
            bVar13 = true;
            if (uVar16 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
              if (uVar4 != 8) goto LAB_0033b4b4;
              iVar3 = 0;
              bVar13 = true;
            }
          }
LAB_0033b038:
          uVar17 = local_res8[2];
          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;
LAB_0033b44c:
          (**(code **)(*local_res8 + 0x28))();
          uVar17 = 1;
          if (local_res8 != (int *)0x0) {
            piVar9 = (int *)local_res8[2];
            goto LAB_0033b064;
          }
        }
        else {
          if (!bVar13) break;
LAB_0033b008:
          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {
            uVar16 = 0;
            bVar13 = true;
            goto LAB_0033b0b4;
          }
          if (uVar16 != 0) {
            if (uVar4 == 0x10) {
              iVar3 = 0;
              bVar13 = false;
              goto LAB_0033b038;
            }
            uVar16 = 0;
            bVar13 = true;
            goto LAB_0033ae20;
          }
          iVar3 = 0;
          bVar13 = false;
          uVar17 = local_res8[2];
          uVar4 = 0x10;
          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;
LAB_0033b050:
          local_res8[2] = uVar17 + 4;
          piVar9 = (int *)local_res8[2];
LAB_0033b064:
          if (piVar9 < (int *)local_res8[3]) {
            iVar5 = *piVar9;
          }
          else {
            iVar5 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar5 == -1) {
            local_res8 = (int *)0x0;
            uVar17 = 1;
          }
          else {
            uVar17 = 0;
          }
        }
        local_resc = -1;
        if ((param_5 == (int *)0x0) || (param_6 != -1)) {
          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;
        }
        else {
          if ((int *)param_5[2] < (int *)param_5[3]) {
            iVar5 = *(int *)param_5[2];
            if (iVar5 == -1) {
              param_5 = (int *)0x0;
            }
          }
          else {
            local_50 = uVar17;
            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar17 = local_50;
            if (iVar5 == -1) {
              param_5 = (int *)0x0;
            }
          }
          if ((iVar5 == -1) == uVar17) {
LAB_0033b0ac:
            cVar8 = *(char *)(iVar11 + 0x10);
            uVar16 = 1;
            goto LAB_0033b0b4;
          }
        }
        param_4 = local_resc;
        if (local_res8 != (int *)0x0) {
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            param_4 = *(int *)local_res8[2];
          }
          else {
            param_4 = (**(code **)(*local_res8 + 0x24))();
          }
          if (param_4 == -1) {
            local_res8 = (int *)0x0;
          }
        }
        cVar8 = *(char *)(iVar11 + 0x10);
      } while (bVar13);
      uVar16 = 0;
      goto LAB_0033b0b4;
    }
    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||
       (*(int *)(iVar11 + 0x24) == param_4)) goto LAB_0033afc8;
    if ((uint)local_res8[2] < (uint)local_res8[3]) {
      local_res8[2] = local_res8[2] + 4;
      piVar9 = (int *)local_res8[2];
LAB_0033adc0:
      if (piVar9 < (int *)local_res8[3]) {
        iVar3 = *piVar9;
      }
      else {
        iVar3 = (**(code **)(*local_res8 + 0x24))();
      }
      if (iVar3 == -1) {
        local_res8 = (int *)0x0;
        bVar13 = true;
      }
      else {
        bVar13 = false;
      }
    }
    else {
      bVar13 = true;
      (**(code **)(*local_res8 + 0x28))();
      if (local_res8 != (int *)0x0) {
        piVar9 = (int *)local_res8[2];
        goto LAB_0033adc0;
      }
    }
    local_resc = -1;
    iVar3 = param_6;
    if ((param_5 != (int *)0x0) && (param_6 == -1)) {
      if ((int *)param_5[2] < (int *)param_5[3]) {
        iVar3 = *(int *)param_5[2];
        if (iVar3 == -1) {
          param_5 = (int *)0x0;
        }
      }
      else {
        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
        if (iVar3 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    if ((iVar3 == -1) != bVar13) {
      param_4 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::_M_get();
      cVar8 = *(char *)(iVar11 + 0x10);
      goto LAB_0033afc8;
    }
    cVar8 = *(char *)(iVar11 + 0x10);
    uVar16 = 1;
    iVar3 = 0;
    bVar13 = false;
    if (uVar4 != 0x10) goto LAB_0033ae20;
LAB_0033b0c0:
    local_60[0] = local_60[0] & 0xffffff;
    local_48 = 0x16;
    if (cVar8 == '\0') goto LAB_0033ae38;
LAB_0033b0e0:
    local_68 = local_60;
    local_64 = 0;
    local_40 = local_68;
                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */
    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);
    uVar17 = (uint)*(byte *)(iVar11 + 0x124);
    if (uVar4 == 0) {
      trap(7);
    }
    local_4c = 0xffffffff / uVar4;
    if (uVar17 == 0) goto LAB_0033ae54;
LAB_0033b110:
    if (uVar16 == 0) {
      local_50 = 0;
      local_34 = &local_68;
      uVar14 = 0;
      local_3c = iVar11 + 0xcc;
LAB_0033b128:
      iVar5 = local_3c;
      uVar16 = local_64;
      local_44 = (uint)*(byte *)(iVar11 + 0x10);
      uVar12 = uVar17;
      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {
        if ((param_4 == *(int *)(iVar11 + 0x24)) ||
           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))
        goto LAB_0033b528;
        uVar16 = iVar6 - iVar5 >> 2;
        if (0x3c < iVar6 - iVar5) {
          uVar16 = uVar16 - 6;
        }
        if (uVar14 <= local_4c) {
          iVar3 = iVar3 + 1;
          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);
          uVar14 = uVar16 + uVar4 * uVar14;
          goto LAB_0033b1b0;
        }
        uVar16 = local_res8[2];
        local_50 = uVar17;
        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;
LAB_0033b620:
                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */
        (**(code **)(*local_res8 + 0x28))();
        if (local_res8 != (int *)0x0) {
          piVar9 = (int *)local_res8[2];
          goto LAB_0033b1d8;
        }
      }
      else {
        if (iVar3 == 0) {
          if (local_64 != 0) {
            uVar16 = 0;
            uVar15 = 0;
            goto LAB_0033b540;
          }
          *param_9 = 0;
          *param_8 = 4;
          goto LAB_0033af60;
        }
        local_44 = (uint)(char)iVar3;
        local_30 = local_64 + 1;
        uVar7 = 0xf;
        if (local_68 != local_40) {
          uVar7 = local_60[0];
        }
        if (uVar7 < local_64 + 1) {
                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */
          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);
        }
        local_64 = local_30;
        iVar3 = 0;
        *(char *)((int)local_68 + uVar16) = (char)local_44;
        *(undefined1 *)((int)local_68 + local_30) = 0;
LAB_0033b1b0:
        uVar16 = local_res8[2];
        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;
LAB_0033b1c8:
        local_res8[2] = uVar16 + 4;
        piVar9 = (int *)local_res8[2];
LAB_0033b1d8:
        if (piVar9 < (int *)local_res8[3]) {
          iVar5 = *piVar9;
        }
        else {
          iVar5 = (**(code **)(*local_res8 + 0x24))();
        }
        if (iVar5 == -1) {
          local_res8 = (int *)0x0;
        }
        else {
          uVar12 = 0;
        }
      }
      local_resc = -1;
      iVar5 = param_6;
      if ((param_5 != (int *)0x0) && (param_6 == -1)) {
        if ((int *)param_5[2] < (int *)param_5[3]) {
          iVar5 = *(int *)param_5[2];
          if (iVar5 == -1) {
            param_5 = (int *)0x0;
          }
        }
        else {
          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
          if (iVar5 == -1) {
            param_5 = (int *)0x0;
          }
        }
      }
      uVar16 = uVar17;
      if ((iVar5 == -1) != uVar12) {
        param_4 = local_resc;
        if (local_res8 != (int *)0x0) {
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            param_4 = *(int *)local_res8[2];
          }
          else {
                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */
            param_4 = (**(code **)(*local_res8 + 0x24))();
          }
          if (param_4 == -1) {
            local_res8 = (int *)0x0;
          }
        }
        goto LAB_0033b128;
      }
    }
    else {
      local_50 = 0;
      uVar14 = 0;
    }
LAB_0033af18:
    if (local_64 == 0) goto LAB_0033af24;
LAB_0033b538:
    uVar15 = (undefined1)iVar3;
    local_44 = 0;
LAB_0033b540:
    uVar4 = local_64;
    uVar12 = local_64 + 1;
    uVar17 = local_60[0];
    if (local_68 == local_40) {
      uVar17 = 0xf;
    }
    if (uVar17 < uVar12) {
      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);
    }
    *(undefined1 *)((int)local_68 + uVar4) = uVar15;
    *(undefined1 *)((int)local_68 + uVar12) = 0;
    local_64 = uVar12;
    iVar11 = (*(code *)PTR___verify_grouping_00433d24)
                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);
    if (iVar11 == 0) {
      *param_8 = 4;
    }
    if ((((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) goto LAB_0033b5b4;
  }
  else {
    if ((int *)param_5[2] < (int *)param_5[3]) {
      iVar5 = *(int *)param_5[2];
      if (iVar5 == -1) {
        param_5 = (int *)0x0;
      }
    }
    else {
      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
      if (iVar5 == -1) {
        param_5 = (int *)0x0;
      }
    }
    if ((iVar5 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;
LAB_0033b298:
    cVar8 = *(char *)(iVar11 + 0x10);
    uVar16 = 1;
    local_38 = 0;
    param_4 = 0;
    iVar3 = 0;
    bVar13 = false;
LAB_0033b0b4:
    if (uVar4 == 0x10) goto LAB_0033b0c0;
LAB_0033ae20:
    local_60[0] = local_60[0] & 0xffffff;
    local_48 = uVar4;
    if (cVar8 != '\0') goto LAB_0033b0e0;
LAB_0033ae38:
    local_68 = local_60;
    local_64 = 0;
    uVar17 = (uint)*(byte *)(iVar11 + 0x124);
    if (uVar4 == 0) {
      trap(7);
    }
    local_4c = 0xffffffff / uVar4;
    local_40 = local_68;
    if (uVar17 != 0) goto LAB_0033b110;
LAB_0033ae54:
    local_50 = 0;
    if (uVar16 != 0) {
      uVar14 = 0;
      goto LAB_0033af18;
    }
    local_44 = local_48 + 0x30;
    local_48 = (uint)(local_48 < 0xb);
    uVar14 = 0;
LAB_0033ae78:
    if (local_48 == 0) goto LAB_0033b3ac;
LAB_0033ae80:
    if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {
LAB_0033ae98:
      if (uVar14 <= local_4c) goto LAB_0033b3cc;
LAB_0033aea8:
      local_50 = 1;
      uVar17 = local_res8[2];
      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;
LAB_0033aec4:
      local_res8[2] = uVar17 + 4;
      piVar9 = (int *)local_res8[2];
      do {
        if (piVar9 < (int *)local_res8[3]) {
          iVar5 = *piVar9;
        }
        else {
          iVar5 = (**(code **)(*local_res8 + 0x24))();
        }
        if (iVar5 == -1) {
          local_res8 = (int *)0x0;
          bVar10 = true;
        }
        else {
          bVar10 = false;
        }
        do {
          local_resc = -1;
          if ((param_5 == (int *)0x0) || (param_6 != -1)) {
            bVar1 = param_6 == -1;
          }
          else {
            if ((int *)param_5[2] < (int *)param_5[3]) {
              iVar5 = *(int *)param_5[2];
              if (iVar5 == -1) {
                param_5 = (int *)0x0;
              }
            }
            else {
                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */
              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
              if (iVar5 == -1) {
                param_5 = (int *)0x0;
              }
            }
            bVar1 = iVar5 == -1;
          }
          if (bVar1 == bVar10) {
            uVar16 = 1;
            goto LAB_0033af18;
          }
          param_4 = local_resc;
          if (local_res8 == (int *)0x0) goto LAB_0033ae78;
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            param_4 = *(int *)local_res8[2];
          }
          else {
                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */
            param_4 = (**(code **)(*local_res8 + 0x24))();
          }
          if (param_4 != -1) goto LAB_0033ae78;
          local_res8 = (int *)0x0;
          if (local_48 != 0) goto LAB_0033ae80;
LAB_0033b3ac:
          uVar16 = param_4 - 0x30;
          if (9 < uVar16) {
            if (5 < param_4 - 0x61U) {
              uVar16 = param_4 - 0x37;
              if (param_4 - 0x41U < 6) goto LAB_0033ae98;
              goto LAB_0033b528;
            }
            uVar16 = param_4 - 0x57;
            goto LAB_0033ae98;
          }
          if (local_4c < uVar14) goto LAB_0033aea8;
LAB_0033b3cc:
          iVar3 = iVar3 + 1;
          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);
          uVar17 = local_res8[2];
          uVar14 = uVar16 + uVar4 * uVar14;
          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;
LAB_0033b404:
          (**(code **)(*local_res8 + 0x28))();
          bVar10 = true;
        } while (local_res8 == (int *)0x0);
        piVar9 = (int *)local_res8[2];
      } while( true );
    }
LAB_0033b528:
    uVar16 = 0;
    if (local_64 != 0) goto LAB_0033b538;
LAB_0033af24:
    if ((iVar3 != 0) || (bVar13)) {
LAB_0033b5b4:
      if (local_50 == 0) {
        if (local_38 != 0) {
          uVar14 = -uVar14;
        }
        *param_9 = uVar14;
      }
      else {
        *param_9 = 0xffffffff;
        *param_8 = 4;
      }
      goto LAB_0033af48;
    }
  }
  *param_9 = 0;
  *param_8 = 4;
LAB_0033af48:
  if (uVar16 != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_0033af60:
  *param_1 = local_res8;
  param_1[1] = local_resc;
  if (local_68 != local_40) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return param_1;
}



int * FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6
                  ,int param_7,uint *param_8,uint *param_9)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  char cVar8;
  int iVar6;
  uint uVar7;
  __numpunct_cache<wchar_t> *this;
  int *piVar9;
  bool bVar10;
  int iVar11;
  uint uVar12;
  bool bVar13;
  uint uVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  int *local_res8;
  int local_resc;
  uint *local_68;
  uint local_64;
  uint local_60 [4];
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  int local_3c;
  uint local_38;
  uint **local_34;
  uint local_30;
  
  local_res8 = param_3;
  local_resc = param_4;
  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);
  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar11 = *piVar9;
  if (iVar11 == 0) {
                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */
    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);
    *(undefined4 *)(this + 4) = 0;
    *(undefined4 *)(this + 8) = 0;
    *(undefined4 *)(this + 0xc) = 0;
    puVar2 = PTR_vtable_0043237c;
    this[0x10] = (__numpunct_cache<wchar_t>)0x0;
    *(undefined4 *)(this + 0x14) = 0;
    *(undefined4 *)(this + 0x18) = 0;
    *(undefined **)this = puVar2 + 8;
    *(undefined4 *)(this + 0x1c) = 0;
    *(undefined4 *)(this + 0x20) = 0;
    *(undefined4 *)(this + 0x24) = 0;
    *(undefined4 *)(this + 0x28) = 0;
                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */
    this[0x124] = (__numpunct_cache<wchar_t>)0x0;
    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));
    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);
    iVar11 = *piVar9;
  }
  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;
  if (uVar16 == 0x40) {
    uVar4 = 8;
  }
  else {
    uVar4 = 10;
    if (uVar16 == 8) {
      uVar4 = 0x10;
    }
  }
  iVar3 = local_resc;
  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
    if ((int *)local_res8[2] < (int *)local_res8[3]) {
      iVar3 = *(int *)local_res8[2];
    }
    else {
      iVar3 = (**(code **)(*local_res8 + 0x24))();
    }
    if (iVar3 == -1) {
      local_res8 = (int *)0x0;
    }
  }
  if ((param_5 == (int *)0x0) || (param_6 != -1)) {
    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;
LAB_0033b298:
    cVar8 = *(char *)(iVar11 + 0x10);
    uVar16 = 1;
    local_38 = 0;
    iVar3 = 0;
    iVar5 = 0;
    bVar13 = false;
LAB_0033b0b4:
    if (uVar4 == 0x10) goto LAB_0033b0c0;
LAB_0033ae20:
    local_60[0] = local_60[0] & 0xffffff;
    local_48 = uVar4;
    if (cVar8 == '\0') goto LAB_0033ae38;
LAB_0033b0e0:
    local_68 = local_60;
    local_64 = 0;
    local_40 = local_68;
                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */
    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);
    uVar17 = (uint)*(byte *)(iVar11 + 0x124);
    if (uVar4 == 0) {
      trap(7);
    }
    local_4c = 0xffffffff / uVar4;
    if (uVar17 != 0) goto LAB_0033b110;
LAB_0033ae54:
    local_50 = 0;
    if (uVar16 != 0) {
      uVar14 = 0;
      goto LAB_0033af18;
    }
    local_44 = local_48 + 0x30;
    local_48 = (uint)(local_48 < 0xb);
    uVar14 = 0;
LAB_0033ae78:
    if (local_48 == 0) goto LAB_0033b3ac;
LAB_0033ae80:
    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {
LAB_0033ae98:
      if (uVar14 <= local_4c) goto LAB_0033b3cc;
LAB_0033aea8:
      local_50 = 1;
      uVar17 = local_res8[2];
      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;
LAB_0033aec4:
      local_res8[2] = uVar17 + 4;
      piVar9 = (int *)local_res8[2];
      do {
        local_resc = -1;
        if (piVar9 < (int *)local_res8[3]) {
          iVar3 = *piVar9;
        }
        else {
          iVar3 = (**(code **)(*local_res8 + 0x24))();
        }
        if (iVar3 == -1) {
          local_res8 = (int *)0x0;
          bVar10 = true;
        }
        else {
          bVar10 = false;
        }
        do {
          if ((param_5 == (int *)0x0) || (param_6 != -1)) {
            bVar1 = param_6 == -1;
            iVar3 = local_resc;
          }
          else {
            if ((int *)param_5[2] < (int *)param_5[3]) {
              iVar3 = *(int *)param_5[2];
              if (iVar3 == -1) {
                param_5 = (int *)0x0;
              }
            }
            else {
                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */
              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
              if (iVar3 == -1) {
                param_5 = (int *)0x0;
              }
            }
            bVar1 = iVar3 == -1;
            iVar3 = local_resc;
          }
          local_resc = iVar3;
          if (bVar1 == bVar10) {
            uVar16 = 1;
            goto LAB_0033af18;
          }
          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            iVar3 = *(int *)local_res8[2];
          }
          else {
                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */
            iVar3 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar3 != -1) goto LAB_0033ae78;
          local_res8 = (int *)0x0;
          if (local_48 != 0) goto LAB_0033ae80;
LAB_0033b3ac:
          uVar16 = iVar3 - 0x30;
          if (9 < uVar16) {
            if (iVar3 - 0x61U < 6) {
              uVar16 = iVar3 - 0x57;
              goto LAB_0033ae98;
            }
            uVar16 = iVar3 - 0x37;
            if (5 < iVar3 - 0x41U) goto LAB_0033b528;
            goto LAB_0033ae98;
          }
          if (local_4c < uVar14) goto LAB_0033aea8;
LAB_0033b3cc:
          iVar5 = iVar5 + 1;
          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);
          uVar17 = local_res8[2];
          uVar14 = uVar16 + uVar4 * uVar14;
          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;
LAB_0033b404:
          (**(code **)(*local_res8 + 0x28))();
          bVar10 = true;
          local_resc = -1;
        } while (local_res8 == (int *)0x0);
        piVar9 = (int *)local_res8[2];
      } while( true );
    }
LAB_0033b528:
    uVar16 = 0;
    if (local_64 == 0) goto LAB_0033af24;
LAB_0033b538:
    uVar15 = (undefined1)iVar5;
    local_44 = 0;
LAB_0033b540:
    uVar4 = local_64;
    uVar12 = local_64 + 1;
    uVar17 = local_60[0];
    if (local_68 == local_40) {
      uVar17 = 0xf;
    }
    if (uVar17 < uVar12) {
      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);
    }
    *(undefined1 *)((int)local_68 + uVar4) = uVar15;
    *(undefined1 *)((int)local_68 + uVar12) = 0;
    local_64 = uVar12;
    iVar3 = (*(code *)PTR___verify_grouping_00433d24)
                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);
    if (iVar3 == 0) {
      *param_8 = 4;
    }
    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {
LAB_0033b5b4:
      if (local_50 == 0) {
        if (local_38 != 0) {
          uVar14 = -uVar14;
        }
        *param_9 = uVar14;
      }
      else {
        *param_9 = 0xffffffff;
        *param_8 = 4;
      }
      goto LAB_0033af48;
    }
  }
  else {
    if ((int *)param_5[2] < (int *)param_5[3]) {
      iVar5 = *(int *)param_5[2];
      if (iVar5 == -1) {
        param_5 = (int *)0x0;
      }
    }
    else {
      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
      if (iVar5 == -1) {
        param_5 = (int *)0x0;
      }
    }
    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;
LAB_0033ad4c:
    iVar3 = local_resc;
    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
      if ((int *)local_res8[2] < (int *)local_res8[3]) {
        iVar3 = *(int *)local_res8[2];
      }
      else {
        iVar3 = (**(code **)(*local_res8 + 0x24))();
      }
      if (iVar3 == -1) {
        local_res8 = (int *)0x0;
      }
    }
    cVar8 = *(char *)(iVar11 + 0x10);
    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);
    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {
      local_38 = 0;
LAB_0033afc8:
      iVar5 = 0;
      bVar13 = false;
      do {
        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {
          if (uVar4 != 0x10) {
            uVar16 = 0;
            goto LAB_0033ae20;
          }
          local_60[0] = local_60[0] & 0xffffff;
          uVar16 = 0;
          local_48 = 0x16;
          goto LAB_0033b0e0;
        }
        if (*(int *)(iVar11 + 0x24) == iVar3) break;
        if (*(int *)(iVar11 + 0xcc) == iVar3) {
          if (bVar13) {
            if (uVar4 != 10) goto LAB_0033b008;
            if (uVar16 == 0) {
              iVar5 = 0;
              uVar4 = 8;
            }
            else {
LAB_0033b4b4:
              iVar5 = iVar5 + 1;
              bVar13 = true;
            }
          }
          else {
            bVar13 = true;
            if (uVar16 == 0) {
              iVar5 = 0;
              uVar4 = 8;
            }
            else {
              if (uVar4 != 8) goto LAB_0033b4b4;
              iVar5 = 0;
              bVar13 = true;
            }
          }
LAB_0033b038:
          uVar17 = local_res8[2];
          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;
LAB_0033b44c:
          (**(code **)(*local_res8 + 0x28))();
          uVar17 = 1;
          local_resc = -1;
          if (local_res8 != (int *)0x0) {
            piVar9 = (int *)local_res8[2];
            goto LAB_0033b064;
          }
        }
        else {
          if (!bVar13) break;
LAB_0033b008:
          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {
            uVar16 = 0;
            bVar13 = true;
            goto LAB_0033b0b4;
          }
          if (uVar16 != 0) {
            if (uVar4 == 0x10) {
              iVar5 = 0;
              bVar13 = false;
              goto LAB_0033b038;
            }
            uVar16 = 0;
            bVar13 = true;
            goto LAB_0033ae20;
          }
          iVar5 = 0;
          bVar13 = false;
          uVar17 = local_res8[2];
          uVar4 = 0x10;
          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;
LAB_0033b050:
          local_res8[2] = uVar17 + 4;
          piVar9 = (int *)local_res8[2];
LAB_0033b064:
          local_resc = -1;
          if (piVar9 < (int *)local_res8[3]) {
            iVar6 = *piVar9;
          }
          else {
            iVar6 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar6 == -1) {
            local_res8 = (int *)0x0;
            uVar17 = 1;
          }
          else {
            uVar17 = 0;
          }
        }
        if ((param_5 == (int *)0x0) || (param_6 != -1)) {
          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;
        }
        else {
          if ((int *)param_5[2] < (int *)param_5[3]) {
            iVar6 = *(int *)param_5[2];
            if (iVar6 == -1) {
              param_5 = (int *)0x0;
            }
          }
          else {
            local_50 = uVar17;
            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar17 = local_50;
            if (iVar6 == -1) {
              param_5 = (int *)0x0;
            }
          }
          if ((iVar6 == -1) == uVar17) {
LAB_0033b0ac:
            cVar8 = *(char *)(iVar11 + 0x10);
            uVar16 = 1;
            goto LAB_0033b0b4;
          }
        }
        iVar3 = local_resc;
        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            iVar3 = *(int *)local_res8[2];
          }
          else {
            iVar3 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar3 == -1) {
            local_res8 = (int *)0x0;
          }
        }
        cVar8 = *(char *)(iVar11 + 0x10);
      } while (bVar13);
      uVar16 = 0;
      goto LAB_0033b0b4;
    }
    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||
       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;
    if ((uint)local_res8[2] < (uint)local_res8[3]) {
      local_res8[2] = local_res8[2] + 4;
      piVar9 = (int *)local_res8[2];
LAB_0033adc0:
      local_resc = -1;
      if (piVar9 < (int *)local_res8[3]) {
        iVar5 = *piVar9;
      }
      else {
        iVar5 = (**(code **)(*local_res8 + 0x24))();
      }
      if (iVar5 == -1) {
        local_res8 = (int *)0x0;
        bVar13 = true;
      }
      else {
        bVar13 = false;
      }
    }
    else {
      bVar13 = true;
      (**(code **)(*local_res8 + 0x28))();
      local_resc = -1;
      if (local_res8 != (int *)0x0) {
        piVar9 = (int *)local_res8[2];
        goto LAB_0033adc0;
      }
    }
    iVar5 = param_6;
    if ((param_5 != (int *)0x0) && (param_6 == -1)) {
      if ((int *)param_5[2] < (int *)param_5[3]) {
        iVar5 = *(int *)param_5[2];
        if (iVar5 == -1) {
          param_5 = (int *)0x0;
        }
      }
      else {
        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
        if (iVar5 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    if ((iVar5 == -1) != bVar13) {
      iVar3 = FUN_003348d8(&local_res8,local_resc);
      cVar8 = *(char *)(iVar11 + 0x10);
      goto LAB_0033afc8;
    }
    cVar8 = *(char *)(iVar11 + 0x10);
    uVar16 = 1;
    iVar5 = 0;
    bVar13 = false;
    if (uVar4 != 0x10) goto LAB_0033ae20;
LAB_0033b0c0:
    local_60[0] = local_60[0] & 0xffffff;
    local_48 = 0x16;
    if (cVar8 != '\0') goto LAB_0033b0e0;
LAB_0033ae38:
    local_68 = local_60;
    local_64 = 0;
    uVar17 = (uint)*(byte *)(iVar11 + 0x124);
    if (uVar4 == 0) {
      trap(7);
    }
    local_4c = 0xffffffff / uVar4;
    local_40 = local_68;
    if (uVar17 == 0) goto LAB_0033ae54;
LAB_0033b110:
    if (uVar16 == 0) {
      local_50 = 0;
      local_34 = &local_68;
      uVar14 = 0;
      local_3c = iVar11 + 0xcc;
LAB_0033b128:
      iVar6 = local_3c;
      uVar16 = local_64;
      local_44 = (uint)*(byte *)(iVar11 + 0x10);
      uVar12 = uVar17;
      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {
        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||
           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))
        goto LAB_0033b528;
        uVar16 = iVar3 - iVar6 >> 2;
        if (0x3c < iVar3 - iVar6) {
          uVar16 = uVar16 - 6;
        }
        if (uVar14 <= local_4c) {
          iVar5 = iVar5 + 1;
          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);
          uVar14 = uVar16 + uVar4 * uVar14;
          goto LAB_0033b1b0;
        }
        uVar16 = local_res8[2];
        local_50 = uVar17;
        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;
LAB_0033b1c8:
        local_res8[2] = uVar16 + 4;
        piVar9 = (int *)local_res8[2];
LAB_0033b1d8:
        local_resc = -1;
        if (piVar9 < (int *)local_res8[3]) {
          iVar3 = *piVar9;
        }
        else {
          iVar3 = (**(code **)(*local_res8 + 0x24))();
        }
        if (iVar3 == -1) {
          local_res8 = (int *)0x0;
        }
        else {
          uVar12 = 0;
        }
      }
      else {
        if (iVar5 == 0) {
          if (local_64 == 0) {
            *param_9 = 0;
            *param_8 = 4;
            goto LAB_0033af60;
          }
          uVar16 = 0;
          uVar15 = 0;
          goto LAB_0033b540;
        }
        local_44 = (uint)(char)iVar5;
        local_30 = local_64 + 1;
        uVar7 = 0xf;
        if (local_68 != local_40) {
          uVar7 = local_60[0];
        }
        if (uVar7 < local_64 + 1) {
                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */
          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);
        }
        local_64 = local_30;
        iVar5 = 0;
        *(char *)((int)local_68 + uVar16) = (char)local_44;
        *(undefined1 *)((int)local_68 + local_30) = 0;
LAB_0033b1b0:
        uVar16 = local_res8[2];
        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;
LAB_0033b620:
                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */
        (**(code **)(*local_res8 + 0x28))();
        local_resc = -1;
        if (local_res8 != (int *)0x0) {
          piVar9 = (int *)local_res8[2];
          goto LAB_0033b1d8;
        }
      }
      iVar3 = param_6;
      if ((param_5 != (int *)0x0) && (param_6 == -1)) {
        if ((int *)param_5[2] < (int *)param_5[3]) {
          iVar3 = *(int *)param_5[2];
          if (iVar3 == -1) {
            param_5 = (int *)0x0;
          }
        }
        else {
          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
          if (iVar3 == -1) {
            param_5 = (int *)0x0;
          }
        }
      }
      uVar16 = uVar17;
      if ((iVar3 == -1) != uVar12) {
        iVar3 = local_resc;
        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            iVar3 = *(int *)local_res8[2];
          }
          else {
                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */
            iVar3 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar3 == -1) {
            local_res8 = (int *)0x0;
          }
        }
        goto LAB_0033b128;
      }
    }
    else {
      local_50 = 0;
      uVar14 = 0;
    }
LAB_0033af18:
    if (local_64 != 0) goto LAB_0033b538;
LAB_0033af24:
    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;
  }
  *param_9 = 0;
  *param_8 = 4;
LAB_0033af48:
  if (uVar16 != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_0033af60:
  *param_1 = (int)local_res8;
  param_1[1] = local_resc;
  if (local_68 != local_40) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return param_1;
}


lui gp,0x10
addiu gp,gp,-0xa94
addu gp,gp,t9
addiu sp,sp,-0x88
lw t9,-0x69d0(gp)
sw s4,0x70(sp)
sw a0,0x88(sp)
sw gp,0x18(sp)
sw s5,0x74(sp)
sw s3,0x6c(sp)
sw s2,0x68(sp)
sw s1,0x64(sp)
sw s0,0x60(sp)
sw ra,0x84(sp)
sw s8,0x80(sp)
sw s7,0x7c(sp)
sw s6,0x78(sp)
sw a2,0x90(sp)
sw a3,0x94(sp)
lw s4,0xa0(sp)
lw a0,-0x64b0(gp)
lw s2,0x98(sp)
jalr t9
_lw s3,0x9c(sp)
lw v1,0x6c(s4)
or s5,v0,zero
sll v0,v0,0x2
lw s0,0xc(v1)
addu s0,s0,v0
lw s1,0x0(s0)
beq s1,zero,0x0033b7bc
_lw gp,0x18(sp)
lw a2,0xc(s4)
li v0,0x40
andi s8,a2,0x4a
beq s8,v0,0x0033b650
_li v1,0x10
li v0,0xa
xori s7,s8,0x8
movz v0,v1,s7
or s7,v0,zero
lw a0,0x90(sp)
beq a0,zero,0x0033ad20
_lw v0,0x94(sp)
li v1,-0x1
beq v0,v1,0x0033b2b4
_nop
addiu v0,v0,0x1
beq s2,zero,0x0033ad38
_sltiu s0,v0,0x1
li v0,-0x1
beq s3,v0,0x0033b268
_nop
or v0,s3,zero
addiu v0,v0,0x1
sltiu v0,v0,0x1
beq v0,s0,0x0033b298
_nop
lw a0,0x90(sp)
beq a0,zero,0x0033ad64
_lw s0,0x94(sp)
li v0,-0x1
beq s0,v0,0x0033b738
_nop
lw v1,0xbc(s1)
lbu v0,0x10(s1)
xor a0,v1,s0
sltiu a0,a0,0x1
beq v1,s0,0x0033ad88
_sw a0,0x50(sp)
lw v1,0xc0(s1)
bne v1,s0,0x0033b768
_nop
bne v0,zero,0x0033afbc
_nop
lw v1,0x24(s1)
beq v1,s0,0x0033afc8
_lw a0,0x90(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x0033b8e0
_addiu v0,v0,0x4
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x94(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033b948
_nop
lw v0,0x0(v1)
li v1,-0x1
beq v0,v1,0x0033ba3c
_nop
or s4,zero,zero
beq s2,zero,0x0033adf4
_li v0,-0x1
beq s3,v0,0x0033b798
_nop
or v0,s3,zero
addiu v0,v0,0x1
sltiu v0,v0,0x1
bne v0,s4,0x0033b8bc
_li v1,0x10
lbu v0,0x10(s1)
li s5,0x1
or s6,zero,zero
beq s7,v1,0x0033b0c0
_or s4,zero,zero
addiu v1,sp,0x28
sw s7,0x40(sp)
sw zero,0x24(sp)
sw v1,0x48(sp)
sb zero,0x28(sp)
bne v0,zero,0x0033b0e0
_sw v1,0x20(sp)
li v0,-0x1
lbu s8,0x124(s1)
teq s7,zero
divu v0,s7
mflo v0
bne s8,zero,0x0033b110
_sw v0,0x3c(sp)
bne s5,zero,0x0033ba48
_sw zero,0x38(sp)
lw v0,0x40(sp)
li s8,-0x1
addiu v1,v0,0x30
sltiu v0,v0,0xb
sw v1,0x44(sp)
sw v0,0x40(sp)
lw v0,0x40(sp)
beq v0,zero,0x0033b3ac
_addiu v0,s0,-0x30
slti v0,s0,0x30
bne v0,zero,0x0033b528
_lw v0,0x44(sp)
slt v0,s0,v0
beq v0,zero,0x0033b528
_addiu s0,s0,-0x30
lw v0,0x3c(sp)
sltu v0,v0,s5
beq v0,zero,0x0033b3cc
_lw a0,0x90(sp)
li v0,0x1
sw v0,0x38(sp)
lw v1,0xc(a0)
lw v0,0x8(a0)
sltu v1,v0,v1
beq v1,zero,0x0033b404
_nop
addiu v0,v0,0x4
sw s8,0x94(sp)
sw v0,0x8(a0)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033b85c
_nop
lw v0,0x0(v1)
beq v0,s8,0x0033b658
_nop
or s0,zero,zero
beq s2,zero,0x0033af04
_or v0,s3,zero
beq s3,s8,0x0033b338
_nop
addiu v0,v0,0x1
sltiu v0,v0,0x1
bne v0,s0,0x0033b368
_nop
li s8,0x1
lw s0,0x24(sp)
bne s0,zero,0x0033b538
_lw a0,0x20(sp)
bne s6,zero,0x0033b5b4
_lw v0,0x38(sp)
bne s4,zero,0x0033b5b4
_nop
lw v0,0xa8(sp)
lw v1,0xa4(sp)
sw zero,0x0(v0)
li v0,0x4
sw v0,0x0(v1)
beq s8,zero,0x0033af60
_lw v0,0xa4(sp)
lw v1,0xa4(sp)
lw v0,0x0(v0)
ori v0,v0,0x2
sw v0,0x0(v1)
lw v1,0x88(sp)
lw v0,0x90(sp)
sw v0,0x0(v1)
lw v0,0x94(sp)
sw v0,0x4(v1)
lw v0,0x48(sp)
beq a0,v0,0x0033af88
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x84(sp)
lw v0,0x88(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
lw v1,0x28(s1)
bne v1,s0,0x0033ad90
_nop
or s6,zero,zero
or s4,zero,zero
li s5,0x10
beq v0,zero,0x0033afe8
_nop
lw v1,0x28(s1)
beq v1,s0,0x0033b874
_li v1,0x10
lw v1,0x24(s1)
beq v1,s0,0x0033b330
_nop
lw v1,0xcc(s1)
beq v1,s0,0x0033b47c
_nop
beq s4,zero,0x0033b330
_nop
lw v1,0xc4(s1)
beq v1,s0,0x0033b020
_nop
lw v1,0xc8(s1)
bne v1,s0,0x0033b884
_nop
beq s8,zero,0x0033b430
_lw a0,0x90(sp)
bne s7,s5,0x0033b928
_nop
or s6,zero,zero
or s4,zero,zero
lw a0,0x90(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x0033b44c
_nop
addiu v0,v0,0x4
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x94(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033b6c8
_nop
lw v0,0x0(v1)
li v1,-0x1
beq v0,v1,0x0033b5d8
_nop
or v1,zero,zero
beq s2,zero,0x0033b098
_li v0,-0x1
beq s3,v0,0x0033b2e0
_nop
or v0,s3,zero
addiu v0,v0,0x1
sltiu v0,v0,0x1
bne v0,v1,0x0033b310
_nop
lbu v0,0x10(s1)
li s5,0x1
li v1,0x10
bne s7,v1,0x0033ae20
_addiu v1,sp,0x28
li v1,0x16
sw zero,0x24(sp)
sb zero,0x28(sp)
sw v1,0x40(sp)
addiu v1,sp,0x28
sw v1,0x48(sp)
beq v0,zero,0x0033ae38
_sw v1,0x20(sp)
lw t9,-0x6fdc(gp)
li a1,0x20
jalr t9
_addiu a0,sp,0x20
li v0,-0x1
lbu s8,0x124(s1)
lw gp,0x18(sp)
teq s7,zero
divu v0,s7
mflo v0
beq s8,zero,0x0033ae54
_sw v0,0x3c(sp)
bne s5,zero,0x0033ba10
_addiu v0,s1,0xcc
sw zero,0x38(sp)
sw v0,0x4c(sp)
addiu v0,sp,0x20
sw v0,0x54(sp)
lbu v0,0x10(s1)
beq v0,zero,0x0033b140
_sw v0,0x44(sp)
lw v0,0x28(s1)
beq v0,s0,0x0033b664
_nop
lw v0,0x24(s1)
beq s0,v0,0x0033b528
_or a1,s0,zero
lw s0,0x4c(sp)
lw t9,-0x38dc(gp)
lw a2,0x40(sp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x0033b528
_lw gp,0x18(sp)
subu v0,v0,s0
slti v1,v0,0x3d
bne v1,zero,0x0033b17c
_sra v0,v0,0x2
addiu v0,v0,-0x6
lw v1,0x3c(sp)
sltu v1,v1,s5
bne v1,zero,0x0033b608
_lw a0,0x90(sp)
mul s5,s7,s5
lw a0,0x38(sp)
nor v1,zero,v0
addiu s6,s6,0x1
sltu v1,v1,s5
or v1,a0,v1
andi v1,v1,0xff
addu s5,v0,s5
sw v1,0x38(sp)
lw a0,0x90(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x0033b620
_addiu v0,v0,0x4
li v1,-0x1
sw v0,0x8(a0)
sw v1,0x94(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033b9a0
_nop
lw v0,0x0(v1)
li v1,-0x1
beq v0,v1,0x0033b934
_nop
or s0,zero,zero
beq s2,zero,0x0033b20c
_li v0,-0x1
beq s3,v0,0x0033b5e4
_nop
or v0,s3,zero
addiu v0,v0,0x1
sltiu v0,v0,0x1
beq v0,s0,0x0033af18
_nop
lw a0,0x90(sp)
beq a0,zero,0x0033b128
_lw s0,0x94(sp)
li v0,-0x1
bne s0,v0,0x0033b128
_nop
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033ba54
_nop
lw s0,0x0(v1)
or v0,s0,zero
li v1,-0x1
bne v0,v1,0x0033b128
_nop
b 0x0033b128
_sw zero,0x90(sp)
lw v1,0x8(s2)
lw v0,0xc(s2)
sltu v0,v1,v0
beq v0,zero,0x0033b9f0
_nop
lw v0,0x0(v1)
nor v1,zero,v0
movz s2,zero,v1
addiu v0,v0,0x1
sltiu v0,v0,0x1
bne v0,s0,0x0033ad4c
_nop
lbu v0,0x10(s1)
li s5,0x1
sw zero,0x50(sp)
or s0,zero,zero
or s6,zero,zero
b 0x0033b0b4
_or s4,zero,zero
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033b9d8
_nop
lw v0,0x0(v1)
li v1,-0x1
bne v0,v1,0x0033ad20
_nop
b 0x0033ad20
_sw zero,0x90(sp)
lw a0,0x8(s2)
lw v0,0xc(s2)
sltu v0,a0,v0
beq v0,zero,0x0033b6e0
_nop
lw v0,0x0(a0)
nor a0,zero,v0
movz s2,zero,a0
addiu v0,v0,0x1
sltiu v0,v0,0x1
beq v0,v1,0x0033b0ac
_nop
lw a0,0x90(sp)
beq a0,zero,0x0033b328
_lw s0,0x94(sp)
li v0,-0x1
beq s0,v0,0x0033b4f0
_nop
bne s4,zero,0x0033afd4
_lbu v0,0x10(s1)
b 0x0033b0b4
_or s5,zero,zero
lw v1,0x8(s2)
lw v0,0xc(s2)
sltu v0,v1,v0
beq v0,zero,0x0033b83c
_nop
lw v0,0x0(v1)
nor v1,zero,v0
movz s2,zero,v1
addiu v0,v0,0x1
sltiu v0,v0,0x1
beq v0,s0,0x0033af14
_nop
lw a0,0x90(sp)
beq a0,zero,0x0033ae74
_lw s0,0x94(sp)
bne s0,s8,0x0033ae78
_lw v0,0x40(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033b960
_nop
lw s0,0x0(v1)
or v0,s0,zero
bne v0,s8,0x0033ae78
_lw v0,0x40(sp)
bne v0,zero,0x0033ae80
_sw zero,0x90(sp)
addiu v0,s0,-0x30
sltiu v1,v0,0xa
beq v1,zero,0x0033b4cc
_nop
or s0,v0,zero
lw v0,0x3c(sp)
sltu v0,v0,s5
bne v0,zero,0x0033aea8
_lw a0,0x90(sp)
mul s5,s7,s5
lw v1,0x38(sp)
lw a0,0x90(sp)
nor v0,zero,s0
addiu s6,s6,0x1
sltu v0,v0,s5
or v0,v1,v0
lw v1,0xc(a0)
andi v0,v0,0xff
sw v0,0x38(sp)
lw v0,0x8(a0)
sltu v1,v0,v1
bne v1,zero,0x0033aec4
_addu s5,s0,s5
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
lw a0,0x90(sp)
li s0,0x1
lw gp,0x18(sp)
beq a0,zero,0x0033aef4
_sw s8,0x94(sp)
b 0x0033aed4
_lw v1,0x8(a0)
or s6,zero,zero
or s4,zero,zero
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
bne v1,zero,0x0033b050
_li s7,0x10
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
li v0,-0x1
lw a0,0x90(sp)
li v1,0x1
lw gp,0x18(sp)
beq a0,zero,0x0033b088
_sw v0,0x94(sp)
b 0x0033b064
_lw v1,0x8(a0)
beq s4,zero,0x0033b4a0
_li v1,0xa
bne s7,v1,0x0033b008
_nop
bne s8,zero,0x0033b4b4
_nop
or s6,zero,zero
b 0x0033b038
_li s7,0x8
beq s8,zero,0x0033b4e4
_li s4,0x1
li v0,0x8
beq s7,v0,0x0033b4c0
_nop
addiu s6,s6,0x1
b 0x0033b038
_li s4,0x1
or s6,zero,zero
b 0x0033b038
_li s4,0x1
addiu v0,s0,-0x61
sltiu v0,v0,0x6
beq v0,zero,0x0033b51c
_addiu v0,s0,-0x41
b 0x0033ae98
_addiu s0,s0,-0x57
or s6,zero,zero
b 0x0033b038
_li s7,0x8
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033b90c
_nop
lw s0,0x0(v1)
li v0,-0x1
bne s0,v0,0x0033b328
_nop
b 0x0033b328
_sw zero,0x90(sp)
sltiu v0,v0,0x6
bne v0,zero,0x0033ae98
_addiu s0,s0,-0x37
lw s0,0x24(sp)
or s8,zero,zero
beq s0,zero,0x0033af24
_lw a0,0x20(sp)
seb s7,s6
sw zero,0x44(sp)
lw v0,0x48(sp)
beq a0,v0,0x0033b940
_addiu s2,s0,0x1
lw v0,0x28(sp)
sltu v0,v0,s2
bne v0,zero,0x0033b890
_addiu s3,sp,0x20
addu s0,a0,s0
lw t9,-0x64ac(gp)
or a2,s3,zero
sb s7,0x0(s0)
sw s2,0x24(sp)
lw v0,0x20(sp)
addu s2,v0,s2
sb zero,0x0(s2)
lw a1,0xc(s1)
jalr t9
_lw a0,0x8(s1)
bne v0,zero,0x0033b59c
_lw gp,0x18(sp)
lw v1,0xa4(sp)
li v0,0x4
sw v0,0x0(v1)
beq s6,zero,0x0033b71c
_lw a0,0x20(sp)
lw v0,0x44(sp)
bne v0,zero,0x0033af38
_lw v0,0xa8(sp)
lw v0,0x38(sp)
beq v0,zero,0x0033b708
_lw v0,0x50(sp)
lw v1,0xa8(sp)
li v0,-0x1
sw v0,0x0(v1)
li v0,0x4
lw v1,0xa4(sp)
b 0x0033af48
_sw v0,0x0(v1)
sw zero,0x90(sp)
b 0x0033b088
_li v1,0x1
lw v1,0x8(s2)
lw v0,0xc(s2)
sltu v0,v1,v0
beq v0,zero,0x0033b9b8
_nop
lw v0,0x0(v1)
nor v1,zero,v0
b 0x0033b210
_movz s2,zero,v1
sw s8,0x38(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
bne v1,zero,0x0033b1c8
_addiu v0,v0,0x4
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
lw a0,0x90(sp)
li v0,-0x1
lw gp,0x18(sp)
or s0,s8,zero
beq a0,zero,0x0033b1fc
_sw v0,0x94(sp)
b 0x0033b1d8
_lw v1,0x8(a0)
b 0x0033ad08
_li s7,0x8
sw zero,0x90(sp)
b 0x0033aef4
_li s0,0x1
lw s0,0x24(sp)
beq s6,zero,0x0033ba90
_lw a0,0x20(sp)
seb v0,s6
sw v0,0x44(sp)
addiu v0,s0,0x1
sw v0,0x58(sp)
lw v0,0x48(sp)
beq a0,v0,0x0033b690
_li v0,0xf
lw v0,0x28(sp)
addiu v1,s0,0x1
sltu v0,v0,v1
bne v0,zero,0x0033b770
_li v0,0x1
lw v0,0x44(sp)
addu s0,a0,s0
lw v1,0x58(sp)
or s6,zero,zero
sb v0,0x0(s0)
lw v0,0x20(sp)
sw v1,0x24(sp)
addu v0,v0,v1
b 0x0033b1b0
_sb zero,0x0(v0)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
b 0x0033b078
_lw gp,0x18(sp)
lw v0,0x0(s2)
sw v1,0x38(sp)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor a0,zero,v0
lw gp,0x18(sp)
lw v1,0x38(sp)
b 0x0033b300
_movz s2,zero,a0
beq v0,zero,0x0033b714
_lw v0,0xa8(sp)
subu s5,zero,s5
b 0x0033af48
_sw s5,0x0(v0)
bne s4,zero,0x0033b5a8
_lw v0,0x44(sp)
lw v0,0x24(sp)
bne v0,zero,0x0033b5a4
_lw v0,0xa8(sp)
b 0x0033af3c
_lw v1,0xa4(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x0033ba20
_nop
lw s0,0x0(v1)
or v0,s0,zero
li v1,-0x1
bne v0,v1,0x0033ad64
_nop
b 0x0033ad64
_sw zero,0x90(sp)
b 0x0033afc8
_sw zero,0x50(sp)
lw t9,-0x73d0(gp)
lw a0,0x54(sp)
or a3,zero,zero
or a2,zero,zero
sw v0,0x10(sp)
jalr t9
_or a1,s0,zero
lw gp,0x18(sp)
b 0x0033b6a0
_lw a0,0x20(sp)
lw v1,0x8(s2)
lw v0,0xc(s2)
sltu v0,v1,v0
beq v0,zero,0x0033ba70
_nop
lw v0,0x0(v1)
nor v1,zero,v0
b 0x0033adf8
_movz s2,zero,v1
lw t9,-0x7e94(gp)
jalr t9
_li a0,0x128
lw gp,0x18(sp)
or s1,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw zero,0x8(v0)
addiu a1,s4,0x6c
sw zero,0xc(v0)
lw v0,-0x7e54(gp)
lw t9,-0x6670(gp)
sb zero,0x10(s1)
addiu v0,v0,0x8
sw zero,0x14(s1)
sw zero,0x18(s1)
sw v0,0x0(s1)
sw zero,0x1c(s1)
sw zero,0x20(s1)
sw zero,0x24(s1)
sw zero,0x28(s1)
bal 0x00322910
_sb zero,0x124(s1)
lw gp,0x18(sp)
or a1,s1,zero
lw a0,0x6c(s4)
lw t9,-0x692c(gp)
jalr t9
_or a2,s5,zero
lw gp,0x18(sp)
b 0x0033ace4
_lw s1,0x0(s0)
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v1,zero,v0
lw gp,0x18(sp)
b 0x0033b358
_movz s2,zero,v1
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
b 0x0033aee8
_lw gp,0x18(sp)
beq s7,v1,0x0033b97c
_nop
b 0x0033ae1c
_or s5,zero,zero
or s5,zero,zero
b 0x0033b0b4
_li s4,0x1
lw t9,-0x73d0(gp)
li v0,0x1
or a3,zero,zero
or a2,zero,zero
sw v0,0x10(sp)
or a1,s0,zero
jalr t9
_or a0,s3,zero
lw gp,0x18(sp)
b 0x0033b55c
_lw a0,0x20(sp)
lw t9,-0x6610(gp)
addiu a0,sp,0x90
addiu t9,t9,0x48d8
bal 0x003348d8
_lw a1,0x94(sp)
or s0,v0,zero
lw gp,0x18(sp)
b 0x0033afc8
_lbu v0,0x10(s1)
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_li s4,0x1
li v0,-0x1
lw a0,0x90(sp)
lw gp,0x18(sp)
beq a0,zero,0x0033ade4
_sw v0,0x94(sp)
b 0x0033adc0
_lw v1,0x8(a0)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
lw gp,0x18(sp)
b 0x0033b508
_or s0,v0,zero
or s5,zero,zero
b 0x0033ae1c
_li s4,0x1
sw zero,0x90(sp)
b 0x0033b1fc
_or s0,s8,zero
b 0x0033b550
_li v0,0xf
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
b 0x0033add4
_lw gp,0x18(sp)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
lw gp,0x18(sp)
b 0x0033b398
_or s0,v0,zero
addiu v0,sp,0x28
sw zero,0x24(sp)
sb zero,0x28(sp)
or s5,zero,zero
sw v0,0x48(sp)
sw v0,0x20(sp)
li v0,0x16
b 0x0033b0e0
_sw v0,0x40(sp)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
b 0x0033b1ec
_lw gp,0x18(sp)
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v1,zero,v0
lw gp,0x18(sp)
b 0x0033b210
_movz s2,zero,v1
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
b 0x0033b2cc
_lw gp,0x18(sp)
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v1,zero,v0
lw gp,0x18(sp)
b 0x0033b288
_movz s2,zero,v1
or s8,s5,zero
sw zero,0x38(sp)
b 0x0033af18
_or s5,zero,zero
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
lw gp,0x18(sp)
b 0x0033b754
_or s0,v0,zero
sw zero,0x90(sp)
b 0x0033ade4
_li s4,0x1
or s8,s5,zero
b 0x0033af18
_or s5,zero,zero
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
lw gp,0x18(sp)
b 0x0033b254
_or s0,v0,zero
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v1,zero,v0
lw gp,0x18(sp)
b 0x0033adf8
_movz s2,zero,v1
bne s0,zero,0x0033baac
_lw v0,0xa8(sp)
lw v1,0xa4(sp)
sw zero,0x0(v0)
li v0,0x4
b 0x0033af60
_sw v0,0x0(v1)
or s8,zero,zero
b 0x0033b540
_or s7,zero,zero
(translation_unit "int * FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}\n\n" (function_definition "int * FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}" primitive_type (pointer_declarator "* FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" * (function_declarator "FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" identifier (parameter_list "(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * 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 identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "__numpunct_cache<wchar_t> *this;" (binary_expression "__numpunct_cache<wchar_t> *this" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "*this" * identifier)) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "uint *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" identifier = identifier) ;) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" identifier = (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" ( (pointer_expression "*(code *)PTR__M_id_00433800" * (cast_expression "(code *)PTR__M_id_00433800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_00433d20)" ( identifier )))) ;) (expression_statement "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" identifier = (cast_expression "(int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" ( (binary_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4" (pointer_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc)" * (cast_expression "(int *)(*(int *)(param_7 + 0x6c) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_7 + 0x6c) + 0xc)" ( (binary_expression "*(int *)(param_7 + 0x6c) + 0xc" (pointer_expression "*(int *)(param_7 + 0x6c)" * (cast_expression "(int *)(param_7 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) + number_literal) )))) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (iVar11 == 0) {\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" { comment (expression_statement "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);" (assignment_expression "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" identifier = (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)" (parenthesized_expression "(__numpunct_cache<wchar_t> *)" ( (binary_expression "__numpunct_cache<wchar_t> *" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(0x128)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(this + 4) = 0;" (assignment_expression "*(undefined4 *)(this + 4) = 0" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 8) = 0;" (assignment_expression "*(undefined4 *)(this + 8) = 0" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0xc) = 0;" (assignment_expression "*(undefined4 *)(this + 0xc) = 0" (pointer_expression "*(undefined4 *)(this + 0xc)" * (cast_expression "(undefined4 *)(this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = PTR_vtable_0043237c;" (assignment_expression "puVar2 = PTR_vtable_0043237c" identifier = identifier) ;) (expression_statement "this[0x10] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x10] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x10]" identifier [ number_literal ]) = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" ( (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (expression_statement "*(undefined4 *)(this + 0x14) = 0;" (assignment_expression "*(undefined4 *)(this + 0x14) = 0" (pointer_expression "*(undefined4 *)(this + 0x14)" * (cast_expression "(undefined4 *)(this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x18) = 0;" (assignment_expression "*(undefined4 *)(this + 0x18) = 0" (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)this = puVar2 + 8;" (assignment_expression "*(undefined **)this = puVar2 + 8" (pointer_expression "*(undefined **)this" * (cast_expression "(undefined **)this" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar2 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(this + 0x1c) = 0" (pointer_expression "*(undefined4 *)(this + 0x1c)" * (cast_expression "(undefined4 *)(this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x20) = 0;" (assignment_expression "*(undefined4 *)(this + 0x20) = 0" (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x24) = 0;" (assignment_expression "*(undefined4 *)(this + 0x24) = 0" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x28) = 0;" (assignment_expression "*(undefined4 *)(this + 0x28) = 0" (pointer_expression "*(undefined4 *)(this + 0x28)" * (cast_expression "(undefined4 *)(this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) = number_literal) ;) comment (expression_statement "this[0x124] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x124] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x124]" identifier [ number_literal ]) = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" ( (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (labeled_statement "std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));" statement_identifier (ERROR "::__numpunct_cache<wchar_t>:" : : (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > :) : (expression_statement "_M_cache(this,(locale *)(param_7 + 0x6c));" (call_expression "_M_cache(this,(locale *)(param_7 + 0x6c))" identifier (argument_list "(this,(locale *)(param_7 + 0x6c))" ( identifier , (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) ))) ;)) (expression_statement "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004338a4)" ( (pointer_expression "*(code *)PTR__M_install_cache_004338a4" * (cast_expression "(code *)PTR__M_install_cache_004338a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" ( (pointer_expression "*(undefined4 *)(param_7 + 0x6c)" * (cast_expression "(undefined4 *)(param_7 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) })) (expression_statement "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a" identifier = (binary_expression "*(uint *)(param_7 + 0xc) & 0x4a" (pointer_expression "*(uint *)(param_7 + 0xc)" * (cast_expression "(uint *)(param_7 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0xc)" ( (binary_expression "param_7 + 0xc" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0x40)" ( (binary_expression "uVar16 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" { (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" identifier = number_literal) ;) (if_statement "if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n      uVar4 = 0x10;\n    }" { (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) })) }))) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar3 = *(int *)local_res8[2];\n    }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }" { (if_statement "if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;" if (parenthesized_expression "((param_6 == -1) != (iVar3 == -1))" ( (binary_expression "(param_6 == -1) != (iVar3 == -1)" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) != (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0033ad4c;" goto statement_identifier ;)) (labeled_statement "LAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);" statement_identifier : (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (labeled_statement "LAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;" statement_identifier : (if_statement "if (uVar4 == 0x10) goto LAB_0033b0c0;" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_0033b0c0;" goto statement_identifier ;))) (labeled_statement "LAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;) (if_statement "if (cVar8 == '\0') goto LAB_0033ae38;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0033ae38;" goto statement_identifier ;)) (labeled_statement "LAB_0033b0e0:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) comment (expression_statement "(*(code *)PTR_reserve_004331f4)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004331f4)(&local_68,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004331f4)" ( (pointer_expression "*(code *)PTR_reserve_004331f4" * (cast_expression "(code *)PTR_reserve_004331f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_68,0x20)" ( (pointer_expression "&local_68" & identifier) , number_literal ))) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x124)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x124)" ( (binary_expression "iVar11 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (if_statement "if (uVar17 != 0) goto LAB_0033b110;" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033b110;" goto statement_identifier ;)) (labeled_statement "LAB_0033ae54:\n    local_50 = 0;" statement_identifier : (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;)) (if_statement "if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033af18;" goto statement_identifier ;) })) (expression_statement "local_44 = local_48 + 0x30;" (assignment_expression "local_44 = local_48 + 0x30" identifier = (binary_expression "local_48 + 0x30" identifier + number_literal)) ;) (expression_statement "local_48 = (uint)(local_48 < 0xb);" (assignment_expression "local_48 = (uint)(local_48 < 0xb)" identifier = (call_expression "(uint)(local_48 < 0xb)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 < 0xb)" ( (binary_expression "local_48 < 0xb" identifier < number_literal) )))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;" statement_identifier : (if_statement "if (local_48 == 0) goto LAB_0033b3ac;" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033b3ac;" goto statement_identifier ;))) (labeled_statement "LAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" statement_identifier : (if_statement "if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" if (parenthesized_expression "((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44))" ( (binary_expression "(0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)" (parenthesized_expression "(0x2f < iVar3)" ( (binary_expression "0x2f < iVar3" number_literal < identifier) )) && (parenthesized_expression "(uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)" ( (comma_expression "uVar16 = iVar3 - 0x30, iVar3 < (int)local_44" (assignment_expression "uVar16 = iVar3 - 0x30" identifier = (binary_expression "iVar3 - 0x30" identifier - number_literal)) , (binary_expression "iVar3 < (int)local_44" identifier < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" { (labeled_statement "LAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;" statement_identifier : (if_statement "if (uVar14 <= local_4c) goto LAB_0033b3cc;" if (parenthesized_expression "(uVar14 <= local_4c)" ( (binary_expression "uVar14 <= local_4c" identifier <= identifier) )) (goto_statement "goto LAB_0033b3cc;" goto statement_identifier ;))) (labeled_statement "LAB_0033aea8:\n      local_50 = 1;" statement_identifier : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;)) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;" if (parenthesized_expression "((uint)local_res8[3] <= uVar17)" ( (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b404;" goto statement_identifier ;)) (labeled_statement "LAB_0033aec4:\n      local_res8[2] = uVar17 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (do_statement "do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );" do (compound_statement "{\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      }" { (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *piVar9;\n        }" { (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) }) (else_clause "else {\n          bVar10 = false;\n        }" else (compound_statement "{\n          bVar10 = false;\n        }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) }))) (do_statement "do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);" do (compound_statement "{\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        }" { (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }" { (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) }) (else_clause "else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" else (compound_statement "{\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { (expression_statement "iVar3 = *(int *)param_5[2];" (assignment_expression "iVar3 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" else (compound_statement "{\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { comment (expression_statement "iVar3 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar3 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "bVar1 = iVar3 == -1;" (assignment_expression "bVar1 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" identifier == number_literal)) ;) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) }))) (expression_statement "local_resc = iVar3;" (assignment_expression "local_resc = iVar3" identifier = identifier) ;) (if_statement "if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" if (parenthesized_expression "(bVar1 == bVar10)" ( (binary_expression "bVar1 == bVar10" identifier == identifier) )) (compound_statement "{\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0033af18;" goto statement_identifier ;) })) (if_statement "if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;" if (parenthesized_expression "((local_res8 == (int *)0x0) || (iVar3 != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (iVar3 != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) ))) )) (goto_statement "goto LAB_0033ae78;" goto statement_identifier ;)) (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" { comment (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 != -1) goto LAB_0033ae78;" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0033ae78;" goto statement_identifier ;)) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_48 != 0) goto LAB_0033ae80;" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033ae80;" goto statement_identifier ;)) (labeled_statement "LAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;" statement_identifier : (expression_statement "uVar16 = iVar3 - 0x30;" (assignment_expression "uVar16 = iVar3 - 0x30" identifier = (binary_expression "iVar3 - 0x30" identifier - number_literal)) ;)) (if_statement "if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }" if (parenthesized_expression "(9 < uVar16)" ( (binary_expression "9 < uVar16" number_literal < identifier) )) (compound_statement "{\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }" { (if_statement "if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }" if (parenthesized_expression "(iVar3 - 0x61U < 6)" ( (binary_expression "iVar3 - 0x61U < 6" (binary_expression "iVar3 - 0x61U" identifier - number_literal) < number_literal) )) (compound_statement "{\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }" { (expression_statement "uVar16 = iVar3 - 0x57;" (assignment_expression "uVar16 = iVar3 - 0x57" identifier = (binary_expression "iVar3 - 0x57" identifier - number_literal)) ;) (goto_statement "goto LAB_0033ae98;" goto statement_identifier ;) })) (expression_statement "uVar16 = iVar3 - 0x37;" (assignment_expression "uVar16 = iVar3 - 0x37" identifier = (binary_expression "iVar3 - 0x37" identifier - number_literal)) ;) (if_statement "if (5 < iVar3 - 0x41U) goto LAB_0033b528;" if (parenthesized_expression "(5 < iVar3 - 0x41U)" ( (binary_expression "5 < iVar3 - 0x41U" number_literal < (binary_expression "iVar3 - 0x41U" identifier - number_literal)) )) (goto_statement "goto LAB_0033b528;" goto statement_identifier ;)) (goto_statement "goto LAB_0033ae98;" goto statement_identifier ;) })) (if_statement "if (local_4c < uVar14) goto LAB_0033aea8;" if (parenthesized_expression "(local_4c < uVar14)" ( (binary_expression "local_4c < uVar14" identifier < identifier) )) (goto_statement "goto LAB_0033aea8;" goto statement_identifier ;)) (labeled_statement "LAB_0033b3cc:\n          iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" identifier = (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar16 < uVar4 * uVar14)" ( (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" ~ identifier) < (binary_expression "uVar4 * uVar14" identifier * identifier)) ))))) ;) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" identifier = (binary_expression "uVar16 + uVar4 * uVar14" identifier + (binary_expression "uVar4 * uVar14" identifier * identifier))) ;) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;" if (parenthesized_expression "(uVar17 < (uint)local_res8[3])" ( (binary_expression "uVar17 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033aec4;" goto statement_identifier ;)) (labeled_statement "LAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) }) while (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_0033b528:\n    uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (if_statement "if (local_64 == 0) goto LAB_0033af24;" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033af24;" goto statement_identifier ;)) (labeled_statement "LAB_0033b538:\n    uVar15 = (undefined1)iVar5;" statement_identifier : (expression_statement "uVar15 = (undefined1)iVar5;" (assignment_expression "uVar15 = (undefined1)iVar5" identifier = (cast_expression "(undefined1)iVar5" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033b540:\n    uVar4 = local_64;" statement_identifier : (expression_statement "uVar4 = local_64;" (assignment_expression "uVar4 = local_64" identifier = identifier) ;)) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = local_60[0];" (assignment_expression "uVar17 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) (if_statement "if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }" if (parenthesized_expression "(local_68 == local_40)" ( (binary_expression "local_68 == local_40" identifier == identifier) )) (compound_statement "{\n      uVar17 = 0xf;\n    }" { (expression_statement "uVar17 = 0xf;" (assignment_expression "uVar17 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" if (parenthesized_expression "(uVar17 < uVar12)" ( (binary_expression "uVar17 < uVar12" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" { (expression_statement "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" ( (pointer_expression "*(code *)PTR__M_mutate_00432e00" * (cast_expression "(code *)PTR__M_mutate_00432e00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_68,local_64,0,0,1)" ( (pointer_expression "&local_68" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((int)local_68 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_68 + uVar4)" * (cast_expression "(undefined1 *)((int)local_68 + uVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar4)" ( (binary_expression "(int)local_68 + uVar4" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" * (cast_expression "(undefined1 *)((int)local_68 + uVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar12)" ( (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);" (assignment_expression "iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" identifier = (call_expression "(*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" (parenthesized_expression "(*(code *)PTR___verify_grouping_00433d24)" ( (pointer_expression "*(code *)PTR___verify_grouping_00433d24" * (cast_expression "(code *)PTR___verify_grouping_00433d24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" ( (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar11 + 0xc)" * (cast_expression "(undefined4 *)(iVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) , (pointer_expression "&local_68" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n      *param_8 = 4;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      *param_8 = 4;\n    }" { (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })) (if_statement "if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" if (parenthesized_expression "((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0))" ( (binary_expression "(((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)" (parenthesized_expression "(((iVar5 != 0) || (bVar13)) || (local_64 != 0))" ( (binary_expression "((iVar5 != 0) || (bVar13)) || (local_64 != 0)" (parenthesized_expression "((iVar5 != 0) || (bVar13))" ( (binary_expression "(iVar5 != 0) || (bVar13)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar13)" ( identifier ))) )) || (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" { (labeled_statement "LAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" statement_identifier : (if_statement "if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }" { (if_statement "if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar14 = -uVar14;\n        }" { (expression_statement "uVar14 = -uVar14;" (assignment_expression "uVar14 = -uVar14" identifier = (unary_expression "-uVar14" - identifier)) ;) })) (expression_statement "*param_9 = uVar14;" (assignment_expression "*param_9 = uVar14" (pointer_expression "*param_9" * identifier) = identifier) ;) }) (else_clause "else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" else (compound_statement "{\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })))) (goto_statement "goto LAB_0033af48;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" else (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" else (compound_statement "{\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;" if (parenthesized_expression "((iVar5 == -1) == (iVar3 == -1))" ( (binary_expression "(iVar5 == -1) == (iVar3 == -1)" (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0033b298;" goto statement_identifier ;)) (labeled_statement "LAB_0033ad4c:\n    iVar3 = local_resc;" statement_identifier : (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;)) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = *(int *)local_res8[2];\n      }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);" (assignment_expression "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3)" identifier = (call_expression "(uint)(*(int *)(iVar11 + 0xbc) == iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar11 + 0xbc) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xbc) == iVar3" (pointer_expression "*(int *)(iVar11 + 0xbc)" * (cast_expression "(int *)(iVar11 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xbc)" ( (binary_expression "iVar11 + 0xbc" identifier + number_literal) )))) == identifier) )))) ;) (if_statement "if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" if (parenthesized_expression "((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3))" ( (binary_expression "(*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)" (parenthesized_expression "(*(int *)(iVar11 + 0xbc) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xbc) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xbc)" * (cast_expression "(int *)(iVar11 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xbc)" ( (binary_expression "iVar11 + 0xbc" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(*(int *)(iVar11 + 0xc0) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xc0) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xc0)" * (cast_expression "(int *)(iVar11 + 0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc0)" ( (binary_expression "iVar11 + 0xc0" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033afc8:\n      iVar5 = 0;" statement_identifier : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (do_statement "do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);" do (compound_statement "{\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      }" { (if_statement "if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }" if (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3))" ( (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar11 + 0x28) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x28) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }" { (if_statement "if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (compound_statement "{\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;) })) (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0e0;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar11 + 0x24) == iVar3) break;" if (parenthesized_expression "(*(int *)(iVar11 + 0x24) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x24) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar11 + 0xcc) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xcc) == iVar3" (pointer_expression "*(int *)(iVar11 + 0xcc)" * (cast_expression "(int *)(iVar11 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xcc)" ( (binary_expression "iVar11 + 0xcc" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }" { (if_statement "if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }" { (if_statement "if (uVar4 != 10) goto LAB_0033b008;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_0033b008;" goto statement_identifier ;)) (if_statement "if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar5 = 0;\n              uVar4 = 8;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" else (compound_statement "{\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" { (labeled_statement "LAB_0033b4b4:\n              iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }))) }) (else_clause "else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" else (compound_statement "{\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (if_statement "if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar5 = 0;\n              uVar4 = 8;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" else (compound_statement "{\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" { (if_statement "if (uVar4 != 8) goto LAB_0033b4b4;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0033b4b4;" goto statement_identifier ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }))) }))) (labeled_statement "LAB_0033b038:\n          uVar17 = local_res8[2];" statement_identifier : (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;" if (parenthesized_expression "(uVar17 < (uint)local_res8[3])" ( (binary_expression "uVar17 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033b050;" goto statement_identifier ;)) (labeled_statement "LAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033b064;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" else (compound_statement "{\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" { (if_statement "if (!bVar13) break;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" statement_identifier : (if_statement "if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" if (parenthesized_expression "((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3))" ( (binary_expression "(*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)" (parenthesized_expression "(*(int *)(iVar11 + 0xc4) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xc4) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xc4)" * (cast_expression "(int *)(iVar11 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc4)" ( (binary_expression "iVar11 + 0xc4" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(*(int *)(iVar11 + 200) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 200) != iVar3" (pointer_expression "*(int *)(iVar11 + 200)" * (cast_expression "(int *)(iVar11 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 200)" ( (binary_expression "iVar11 + 200" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) }))) (if_statement "if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" { (if_statement "if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (goto_statement "goto LAB_0033b038;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;" if (parenthesized_expression "((uint)local_res8[3] <= uVar17)" ( (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b44c;" goto statement_identifier ;)) (labeled_statement "LAB_0033b050:\n          local_res8[2] = uVar17 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033b064:\n          local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar6 = *piVar9;\n          }" { (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "iVar6 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar6 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar17 = 0;\n          }" else (compound_statement "{\n            uVar17 = 0;\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) }))) }))) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }" { (if_statement "if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;" if (parenthesized_expression "((param_6 == -1) == uVar17)" ( (binary_expression "(param_6 == -1) == uVar17" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_0033b0ac;" goto statement_identifier ;)) }) (else_clause "else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" else (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "iVar6 = *(int *)param_5[2];" (assignment_expression "iVar6 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" else (compound_statement "{\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar6 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "uVar17 = local_50;" (assignment_expression "uVar17 = local_50" identifier = identifier) ;) (if_statement "if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" if (parenthesized_expression "((iVar6 == -1) == uVar17)" ( (binary_expression "(iVar6 == -1) == uVar17" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) == identifier) )) (compound_statement "{\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" { (labeled_statement "LAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);" statement_identifier : (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) })) (if_statement "if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;" if (parenthesized_expression "(((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3))" ( (binary_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)" (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3))" ( (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar11 + 0x28) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x28) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) == identifier) ))) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x24) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x24) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) == identifier) ))) )) (goto_statement "goto LAB_0033afc8;" goto statement_identifier ;)) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" if (parenthesized_expression "((uint)local_res8[2] < (uint)local_res8[3])" ( (binary_expression "(uint)local_res8[2] < (uint)local_res8[3]" (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }" { (expression_statement "local_res8[2] = local_res8[2] + 4;" (assignment_expression "local_res8[2] = local_res8[2] + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "local_res8[2] + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033adc0:\n      local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar5 = *piVar9;\n      }" { (expression_statement "iVar5 = *piVar9;" (assignment_expression "iVar5 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" else (compound_statement "{\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" { (expression_statement "iVar5 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar5 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }) (else_clause "else {\n        bVar13 = false;\n      }" else (compound_statement "{\n        bVar13 = false;\n      }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }))) }) (else_clause "else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" else (compound_statement "{\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033adc0;" goto statement_identifier ;) })) }))) (expression_statement "iVar5 = param_6;" (assignment_expression "iVar5 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" else (compound_statement "{\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (if_statement "if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" if (parenthesized_expression "((iVar5 == -1) != bVar13)" ( (binary_expression "(iVar5 == -1) != bVar13" (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) != identifier) )) (compound_statement "{\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" { (expression_statement "iVar3 = FUN_003348d8(&local_res8,local_resc);" (assignment_expression "iVar3 = FUN_003348d8(&local_res8,local_resc)" identifier = (call_expression "FUN_003348d8(&local_res8,local_resc)" identifier (argument_list "(&local_res8,local_resc)" ( (pointer_expression "&local_res8" & identifier) , identifier )))) ;) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0033afc8;" goto statement_identifier ;) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (uVar4 != 0x10) goto LAB_0033ae20;" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;)) (labeled_statement "LAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) (if_statement "if (cVar8 != '\0') goto LAB_0033b0e0;" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0033b0e0;" goto statement_identifier ;)) (labeled_statement "LAB_0033ae38:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x124)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x124)" ( (binary_expression "iVar11 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) (if_statement "if (uVar17 == 0) goto LAB_0033ae54;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033ae54;" goto statement_identifier ;)) (labeled_statement "LAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" statement_identifier : (if_statement "if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_34 = &local_68;" (assignment_expression "local_34 = &local_68" identifier = (pointer_expression "&local_68" & identifier)) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_3c = iVar11 + 0xcc;" (assignment_expression "local_3c = iVar11 + 0xcc" identifier = (binary_expression "iVar11 + 0xcc" identifier + number_literal)) ;) (labeled_statement "LAB_0033b128:\n      iVar6 = local_3c;" statement_identifier : (expression_statement "iVar6 = local_3c;" (assignment_expression "iVar6 = local_3c" identifier = identifier) ;)) (expression_statement "uVar16 = local_64;" (assignment_expression "uVar16 = local_64" identifier = identifier) ;) (expression_statement "local_44 = (uint)*(byte *)(iVar11 + 0x10);" (assignment_expression "local_44 = (uint)*(byte *)(iVar11 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (if_statement "if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" if (parenthesized_expression "((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3))" ( (binary_expression "(local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)" (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x28) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x28) != iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" { (if_statement "if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;" if (parenthesized_expression "((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))" ( (binary_expression "(iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0)" (parenthesized_expression "(iVar3 == *(int *)(iVar11 + 0x24))" ( (binary_expression "iVar3 == *(int *)(iVar11 + 0x24)" identifier == (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48)" identifier = (call_expression "(*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48)" (parenthesized_expression "(*(code *)PTR_wmemchr_004368f4)" ( (pointer_expression "*(code *)PTR_wmemchr_004368f4" * (cast_expression "(code *)PTR_wmemchr_004368f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,iVar3,local_48)" ( identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0033b528;" goto statement_identifier ;)) (expression_statement "uVar16 = iVar3 - iVar6 >> 2;" (assignment_expression "uVar16 = iVar3 - iVar6 >> 2" identifier = (binary_expression "iVar3 - iVar6 >> 2" (binary_expression "iVar3 - iVar6" identifier - identifier) >> number_literal)) ;) (if_statement "if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }" if (parenthesized_expression "(0x3c < iVar3 - iVar6)" ( (binary_expression "0x3c < iVar3 - iVar6" number_literal < (binary_expression "iVar3 - iVar6" identifier - identifier)) )) (compound_statement "{\n          uVar16 = uVar16 - 6;\n        }" { (expression_statement "uVar16 = uVar16 - 6;" (assignment_expression "uVar16 = uVar16 - 6" identifier = (binary_expression "uVar16 - 6" identifier - number_literal)) ;) })) (if_statement "if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" if (parenthesized_expression "(uVar14 <= local_4c)" ( (binary_expression "uVar14 <= local_4c" identifier <= identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" identifier = (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar16 < uVar4 * uVar14)" ( (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" ~ identifier) < (binary_expression "uVar4 * uVar14" identifier * identifier)) ))))) ;) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" identifier = (binary_expression "uVar16 + uVar4 * uVar14" identifier + (binary_expression "uVar4 * uVar14" identifier * identifier))) ;) (goto_statement "goto LAB_0033b1b0;" goto statement_identifier ;) })) (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" identifier = identifier) ;) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;" if (parenthesized_expression "((uint)local_res8[3] <= uVar16)" ( (binary_expression "(uint)local_res8[3] <= uVar16" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b620;" goto statement_identifier ;)) (labeled_statement "LAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 4;" (assignment_expression "local_res8[2] = uVar16 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033b1d8:\n        local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *piVar9;\n        }" { (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" else (compound_statement "{\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" { (if_statement "if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }" { (if_statement "if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }" { (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0033af60;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033b540;" goto statement_identifier ;) })) (expression_statement "local_44 = (uint)(char)iVar5;" (assignment_expression "local_44 = (uint)(char)iVar5" identifier = (cast_expression "(uint)(char)iVar5" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_64 + 1;" (assignment_expression "local_30 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0xf;" (assignment_expression "uVar7 = 0xf" identifier = number_literal) ;) (if_statement "if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar7 = local_60[0];\n        }" { (expression_statement "uVar7 = local_60[0];" (assignment_expression "uVar7 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" if (parenthesized_expression "(uVar7 < local_64 + 1)" ( (binary_expression "uVar7 < local_64 + 1" identifier < (binary_expression "local_64 + 1" identifier + number_literal)) )) (compound_statement "{\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" { comment (expression_statement "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" ( (pointer_expression "*(code *)PTR__M_mutate_00432e00" * (cast_expression "(code *)PTR__M_mutate_00432e00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_34,local_64,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" identifier = identifier) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_68 + uVar16) = (char)local_44;" (assignment_expression "*(char *)((int)local_68 + uVar16) = (char)local_44" (pointer_expression "*(char *)((int)local_68 + uVar16)" * (cast_expression "(char *)((int)local_68 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar16)" ( (binary_expression "(int)local_68 + uVar16" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" * (cast_expression "(undefined1 *)((int)local_68 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + local_30)" ( (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_0033b1b0:\n        uVar16 = local_res8[2];" statement_identifier : (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;" if (parenthesized_expression "(uVar16 < (uint)local_res8[3])" ( (binary_expression "uVar16 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033b1c8;" goto statement_identifier ;)) (labeled_statement "LAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();" statement_identifier : comment (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033b1d8;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = param_6;" (assignment_expression "iVar3 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = *(int *)param_5[2];" (assignment_expression "iVar3 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar3 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" if (parenthesized_expression "((iVar3 == -1) != uVar12)" ( (binary_expression "(iVar3 == -1) != uVar12" (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) != identifier) )) (compound_statement "{\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" { (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" { comment (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (goto_statement "goto LAB_0033b128;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" else (compound_statement "{\n      local_50 = 0;\n      uVar14 = 0;\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) })))) (labeled_statement "LAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;" statement_identifier : (if_statement "if (local_64 != 0) goto LAB_0033b538;" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033b538;" goto statement_identifier ;))) (labeled_statement "LAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;" statement_identifier : (if_statement "if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;" if (parenthesized_expression "((iVar5 != 0) || (bVar13))" ( (binary_expression "(iVar5 != 0) || (bVar13)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar13)" ( identifier ))) )) (goto_statement "goto LAB_0033b5b4;" goto statement_identifier ;))) }))) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" statement_identifier : (if_statement "if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) }))) (labeled_statement "LAB_0033af60:\n  *param_1 = (int)local_res8;" statement_identifier : (expression_statement "*param_1 = (int)local_res8;" (assignment_expression "*param_1 = (int)local_res8" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)local_res8" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > std::num_get<wchar_t,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::_M_extract_int[abi:cxx11]<unsigned long>(std::istreambuf_iterator<wchar_t,\n   std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::ios_base&, std::_Ios_Iostate&, unsigned long&) const */\n\nundefined4 *\nstd::num_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n_M_extract_int_abi_cxx11_<unsigned_long>\n          (undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    __numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = param_4;\n  local_res8 = param_3;\n  if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar3 = *(int *)param_3[2];\n    }\n    else {\n      iVar3 = (**(code **)(*param_3 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  local_resc = param_4;\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    if ((local_res8 != (int *)0x0) && (param_4 == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == param_4);\n    if ((*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar3 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||\n       (*(int *)(iVar11 + 0x24) == param_4)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    local_resc = -1;\n    iVar3 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar3 == -1) != bVar13) {\n      param_4 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::_M_get();\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar3 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar5 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      iVar5 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar3;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar11 = (*(code *)PTR___verify_grouping_00433d24)\n                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar11 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) goto LAB_0033b5b4;\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    param_4 = 0;\n    iVar3 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar3 != 0) || (bVar13)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}\n\n" comment (ERROR "undefined4 *\nstd::num_get<wchar_t," (binary_expression "undefined4 *\nstd::num_get<wchar_t" (binary_expression "undefined4 *\nstd" identifier * identifier) (ERROR "::num_get" : : identifier) < identifier) ,) (labeled_statement "std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n_M_extract_int_abi_cxx11_<unsigned_long>\n          (undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9)" statement_identifier (ERROR "::istreambuf_iterator<wchar_t,std:" : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::\n_M_extract_int_abi_cxx11_<unsigned_long>\n          (undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9)" (binary_expression "char_traits<wchar_t>>>::\n_M_extract_int_abi_cxx11_<unsigned_long>\n          (undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9)" (binary_expression "char_traits<wchar_t>>>::\n_M_extract_int_abi_cxx11_<unsigned_long" (binary_expression "char_traits<wchar_t>>>::\n_M_extract_int_abi_cxx11_" identifier < (binary_expression "wchar_t>>>::\n_M_extract_int_abi_cxx11_" identifier >> (ERROR ">::" > : :) identifier)) < identifier) > (parenthesized_expression "(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9)" ( (comma_expression "undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9" (binary_expression "undefined4 *param_1" identifier * identifier) , (comma_expression "undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9" identifier (ERROR "param_2" identifier) , (comma_expression "int *param_3,int param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9" (binary_expression "int *param_3" identifier * identifier) , (ERROR "int" identifier) (comma_expression "param_4,int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9" identifier , (comma_expression "int *param_5,int param_6,\n          int param_7,uint *param_8,uint *param_9" (binary_expression "int *param_5" identifier * identifier) , (ERROR "int" identifier) (comma_expression "param_6,\n          int param_7,uint *param_8,uint *param_9" identifier , (ERROR "int" identifier) (comma_expression "param_7,uint *param_8,uint *param_9" identifier , (comma_expression "uint *param_8,uint *param_9" (binary_expression "uint *param_8" identifier * identifier) , (binary_expression "uint *param_9" identifier * identifier))))))))) ))) ;)) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    __numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = param_4;\n  local_res8 = param_3;\n  if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar3 = *(int *)param_3[2];\n    }\n    else {\n      iVar3 = (**(code **)(*param_3 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  local_resc = param_4;\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    if ((local_res8 != (int *)0x0) && (param_4 == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == param_4);\n    if ((*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar3 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||\n       (*(int *)(iVar11 + 0x24) == param_4)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    local_resc = -1;\n    iVar3 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar3 == -1) != bVar13) {\n      param_4 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::_M_get();\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar3 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar5 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      iVar5 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar3;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar11 = (*(code *)PTR___verify_grouping_00433d24)\n                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar11 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) goto LAB_0033b5b4;\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    param_4 = 0;\n    iVar3 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar3 != 0) || (bVar13)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "__numpunct_cache<wchar_t> *this;" (binary_expression "__numpunct_cache<wchar_t> *this" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "*this" * identifier)) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "uint *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" identifier = (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" ( (pointer_expression "*(code *)PTR__M_id_00433800" * (cast_expression "(code *)PTR__M_id_00433800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_00433d20)" ( identifier )))) ;) (expression_statement "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" identifier = (cast_expression "(int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" ( (binary_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4" (pointer_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc)" * (cast_expression "(int *)(*(int *)(param_7 + 0x6c) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_7 + 0x6c) + 0xc)" ( (binary_expression "*(int *)(param_7 + 0x6c) + 0xc" (pointer_expression "*(int *)(param_7 + 0x6c)" * (cast_expression "(int *)(param_7 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) + number_literal) )))) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (iVar11 == 0) {\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    __numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */\n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */\n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    __numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" { comment (expression_statement "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);" (assignment_expression "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" identifier = (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)" (parenthesized_expression "(__numpunct_cache<wchar_t> *)" ( (binary_expression "__numpunct_cache<wchar_t> *" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(0x128)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(this + 4) = 0;" (assignment_expression "*(undefined4 *)(this + 4) = 0" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 8) = 0;" (assignment_expression "*(undefined4 *)(this + 8) = 0" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0xc) = 0;" (assignment_expression "*(undefined4 *)(this + 0xc) = 0" (pointer_expression "*(undefined4 *)(this + 0xc)" * (cast_expression "(undefined4 *)(this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = PTR_vtable_0043237c;" (assignment_expression "puVar2 = PTR_vtable_0043237c" identifier = identifier) ;) (expression_statement "this[0x10] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x10] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x10]" identifier [ number_literal ]) = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" ( (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (expression_statement "*(undefined4 *)(this + 0x14) = 0;" (assignment_expression "*(undefined4 *)(this + 0x14) = 0" (pointer_expression "*(undefined4 *)(this + 0x14)" * (cast_expression "(undefined4 *)(this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x18) = 0;" (assignment_expression "*(undefined4 *)(this + 0x18) = 0" (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)this = puVar2 + 8;" (assignment_expression "*(undefined **)this = puVar2 + 8" (pointer_expression "*(undefined **)this" * (cast_expression "(undefined **)this" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar2 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(this + 0x1c) = 0" (pointer_expression "*(undefined4 *)(this + 0x1c)" * (cast_expression "(undefined4 *)(this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x20) = 0;" (assignment_expression "*(undefined4 *)(this + 0x20) = 0" (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x24) = 0;" (assignment_expression "*(undefined4 *)(this + 0x24) = 0" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x28) = 0;" (assignment_expression "*(undefined4 *)(this + 0x28) = 0" (pointer_expression "*(undefined4 *)(this + 0x28)" * (cast_expression "(undefined4 *)(this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) = number_literal) ;) comment (expression_statement "this[0x124] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x124] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x124]" identifier [ number_literal ]) = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" ( (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (expression_statement "__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));" (binary_expression "__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c))" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_cache(this,(locale *)(param_7 + 0x6c))" identifier (argument_list "(this,(locale *)(param_7 + 0x6c))" ( identifier , (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) )))) ;) (expression_statement "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004338a4)" ( (pointer_expression "*(code *)PTR__M_install_cache_004338a4" * (cast_expression "(code *)PTR__M_install_cache_004338a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" ( (pointer_expression "*(undefined4 *)(param_7 + 0x6c)" * (cast_expression "(undefined4 *)(param_7 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) })) (expression_statement "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a" identifier = (binary_expression "*(uint *)(param_7 + 0xc) & 0x4a" (pointer_expression "*(uint *)(param_7 + 0xc)" * (cast_expression "(uint *)(param_7 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0xc)" ( (binary_expression "param_7 + 0xc" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0x40)" ( (binary_expression "uVar16 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" { (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" identifier = number_literal) ;) (if_statement "if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n      uVar4 = 0x10;\n    }" { (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) })) }))) (expression_statement "iVar3 = param_4;" (assignment_expression "iVar3 = param_4" identifier = identifier) ;) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (param_4 == -1)) {\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar3 = *(int *)param_3[2];\n    }\n    else {\n      iVar3 = (**(code **)(*param_3 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" if (parenthesized_expression "((param_3 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(param_3 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar3 = *(int *)param_3[2];\n    }\n    else {\n      iVar3 = (**(code **)(*param_3 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n      iVar3 = *(int *)param_3[2];\n    }\n    else {\n      iVar3 = (**(code **)(*param_3 + 0x24))();\n    }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar3 = *(int *)param_3[2];\n    }" { (expression_statement "iVar3 = *(int *)param_3[2];" (assignment_expression "iVar3 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(*param_3 + 0x24))();\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(*param_3 + 0x24))();\n    }" { (expression_statement "iVar3 = (**(code **)(*param_3 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*param_3 + 0x24))()" identifier = (call_expression "(**(code **)(*param_3 + 0x24))()" (parenthesized_expression "(**(code **)(*param_3 + 0x24))" ( (pointer_expression "**(code **)(*param_3 + 0x24)" * (pointer_expression "*(code **)(*param_3 + 0x24)" * (cast_expression "(code **)(*param_3 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_3 + 0x24)" ( (binary_expression "*param_3 + 0x24" (pointer_expression "*param_3" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" identifier = identifier) ;) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    if ((local_res8 != (int *)0x0) && (param_4 == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == param_4);\n    if ((*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar3 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||\n       (*(int *)(iVar11 + 0x24) == param_4)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    local_resc = -1;\n    iVar3 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar3 == -1) != bVar13) {\n      param_4 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::_M_get();\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar3 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar5 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      iVar5 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar3;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar11 = (*(code *)PTR___verify_grouping_00433d24)\n                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar11 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) goto LAB_0033b5b4;\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    param_4 = 0;\n    iVar3 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar3 != 0) || (bVar13)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n    if ((param_6 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    if ((local_res8 != (int *)0x0) && (param_4 == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == param_4);\n    if ((*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar3 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||\n       (*(int *)(iVar11 + 0x24) == param_4)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    local_resc = -1;\n    iVar3 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar3 == -1) != bVar13) {\n      param_4 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::_M_get();\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar3 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */\n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar5 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      iVar5 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar3;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar11 = (*(code *)PTR___verify_grouping_00433d24)\n                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar11 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) goto LAB_0033b5b4;\n  }" { (if_statement "if ((param_6 == -1) == (iVar3 == -1)) goto LAB_0033b298;" if (parenthesized_expression "((param_6 == -1) == (iVar3 == -1))" ( (binary_expression "(param_6 == -1) == (iVar3 == -1)" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0033b298;" goto statement_identifier ;)) (labeled_statement "LAB_0033ad4c:\n    if ((local_res8 != (int *)0x0) && (param_4 == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" statement_identifier : (if_statement "if ((local_res8 != (int *)0x0) && (param_4 == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (param_4 == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (param_4 == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        param_4 = *(int *)local_res8[2];\n      }\n      else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        param_4 = *(int *)local_res8[2];\n      }" { (expression_statement "param_4 = *(int *)local_res8[2];" (assignment_expression "param_4 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }" else (compound_statement "{\n        param_4 = (**(code **)(*local_res8 + 0x24))();\n      }" { (expression_statement "param_4 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "param_4 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (param_4 == -1) {\n        local_res8 = (int *)0x0;\n      }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == param_4);" (assignment_expression "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == param_4)" identifier = (call_expression "(uint)(*(int *)(iVar11 + 0xbc) == param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar11 + 0xbc) == param_4)" ( (binary_expression "*(int *)(iVar11 + 0xbc) == param_4" (pointer_expression "*(int *)(iVar11 + 0xbc)" * (cast_expression "(int *)(iVar11 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xbc)" ( (binary_expression "iVar11 + 0xbc" identifier + number_literal) )))) == identifier) )))) ;) (if_statement "if ((*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar3 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" if (parenthesized_expression "((*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4))" ( (binary_expression "(*(int *)(iVar11 + 0xbc) != param_4) && (*(int *)(iVar11 + 0xc0) != param_4)" (parenthesized_expression "(*(int *)(iVar11 + 0xbc) != param_4)" ( (binary_expression "*(int *)(iVar11 + 0xbc) != param_4" (pointer_expression "*(int *)(iVar11 + 0xbc)" * (cast_expression "(int *)(iVar11 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xbc)" ( (binary_expression "iVar11 + 0xbc" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(*(int *)(iVar11 + 0xc0) != param_4)" ( (binary_expression "*(int *)(iVar11 + 0xc0) != param_4" (pointer_expression "*(int *)(iVar11 + 0xc0)" * (cast_expression "(int *)(iVar11 + 0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc0)" ( (binary_expression "iVar11 + 0xc0" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      local_38 = 0;\nLAB_0033afc8:\n      iVar3 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033afc8:\n      iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (do_statement "do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);" do (compound_statement "{\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }\n        if (*(int *)(iVar11 + 0x24) == param_4) break;\n        if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        local_resc = -1;\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      }" { (if_statement "if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) {\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }" if (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4))" ( (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar11 + 0x28) == param_4)" ( (binary_expression "*(int *)(iVar11 + 0x28) == param_4" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n          if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }\n          uVar16 = 0;\n          goto LAB_0033ae20;\n        }" { (if_statement "if (uVar4 == 0x10) {\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n            local_60[0] = local_60[0] & 0xffffff;\n            uVar16 = 0;\n            local_48 = 0x16;\n            goto LAB_0033b0e0;\n          }" { (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0e0;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar11 + 0x24) == param_4) break;" if (parenthesized_expression "(*(int *)(iVar11 + 0x24) == param_4)" ( (binary_expression "*(int *)(iVar11 + 0x24) == param_4" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(iVar11 + 0xcc) == param_4) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar11 + 0xcc) == param_4)" ( (binary_expression "*(int *)(iVar11 + 0xcc) == param_4" (pointer_expression "*(int *)(iVar11 + 0xcc)" * (cast_expression "(int *)(iVar11 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xcc)" ( (binary_expression "iVar11 + 0xcc" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }" { (if_statement "if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }\n          }" { (if_statement "if (uVar4 != 10) goto LAB_0033b008;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_0033b008;" goto statement_identifier ;)) (if_statement "if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar3 = 0;\n              uVar4 = 8;\n            }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }" else (compound_statement "{\nLAB_0033b4b4:\n              iVar3 = iVar3 + 1;\n              bVar13 = true;\n            }" { (labeled_statement "LAB_0033b4b4:\n              iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }))) }) (else_clause "else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }" else (compound_statement "{\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }\n          }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (if_statement "if (uVar16 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar3 = 0;\n              uVar4 = 8;\n            }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }" else (compound_statement "{\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar3 = 0;\n              bVar13 = true;\n            }" { (if_statement "if (uVar4 != 8) goto LAB_0033b4b4;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0033b4b4;" goto statement_identifier ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }))) }))) (labeled_statement "LAB_0033b038:\n          uVar17 = local_res8[2];" statement_identifier : (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;" if (parenthesized_expression "(uVar17 < (uint)local_res8[3])" ( (binary_expression "uVar17 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033b050;" goto statement_identifier ;)) (labeled_statement "LAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033b064;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" else (compound_statement "{\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar3 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" { (if_statement "if (!bVar13) break;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" statement_identifier : (if_statement "if ((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" if (parenthesized_expression "((*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4))" ( (binary_expression "(*(int *)(iVar11 + 0xc4) != param_4) && (*(int *)(iVar11 + 200) != param_4)" (parenthesized_expression "(*(int *)(iVar11 + 0xc4) != param_4)" ( (binary_expression "*(int *)(iVar11 + 0xc4) != param_4" (pointer_expression "*(int *)(iVar11 + 0xc4)" * (cast_expression "(int *)(iVar11 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc4)" ( (binary_expression "iVar11 + 0xc4" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(*(int *)(iVar11 + 200) != param_4)" ( (binary_expression "*(int *)(iVar11 + 200) != param_4" (pointer_expression "*(int *)(iVar11 + 200)" * (cast_expression "(int *)(iVar11 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 200)" ( (binary_expression "iVar11 + 200" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) }))) (if_statement "if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" { (if_statement "if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n              iVar3 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (goto_statement "goto LAB_0033b038;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;" if (parenthesized_expression "((uint)local_res8[3] <= uVar17)" ( (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b44c;" goto statement_identifier ;)) (labeled_statement "LAB_0033b050:\n          local_res8[2] = uVar17 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033b064:\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }" statement_identifier : (if_statement "if (piVar9 < (int *)local_res8[3]) {\n            iVar5 = *piVar9;\n          }\n          else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar5 = *piVar9;\n          }" { (expression_statement "iVar5 = *piVar9;" (assignment_expression "iVar5 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n            iVar5 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "iVar5 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar5 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) })))) (if_statement "if (iVar5 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar17 = 0;\n          }" else (compound_statement "{\n            uVar17 = 0;\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) }))) }))) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }" { (if_statement "if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;" if (parenthesized_expression "((param_6 == -1) == uVar17)" ( (binary_expression "(param_6 == -1) == uVar17" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_0033b0ac;" goto statement_identifier ;)) }) (else_clause "else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" else (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar5 = *(int *)param_5[2];\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" else (compound_statement "{\n            local_50 = uVar17;\n            iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "uVar17 = local_50;" (assignment_expression "uVar17 = local_50" identifier = identifier) ;) (if_statement "if (iVar5 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if ((iVar5 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" if (parenthesized_expression "((iVar5 == -1) == uVar17)" ( (binary_expression "(iVar5 == -1) == uVar17" (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) == identifier) )) (compound_statement "{\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" { (labeled_statement "LAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);" statement_identifier : (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) })) }))) (expression_statement "param_4 = local_resc;" (assignment_expression "param_4 = local_resc" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            param_4 = *(int *)local_res8[2];\n          }" { (expression_statement "param_4 = *(int *)local_res8[2];" (assignment_expression "param_4 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "param_4 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "param_4 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) })) (if_statement "if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||\n       (*(int *)(iVar11 + 0x24) == param_4)) goto LAB_0033afc8;" if (parenthesized_expression "(((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||\n       (*(int *)(iVar11 + 0x24) == param_4))" ( (binary_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)) ||\n       (*(int *)(iVar11 + 0x24) == param_4)" (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4))" ( (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == param_4)" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar11 + 0x28) == param_4)" ( (binary_expression "*(int *)(iVar11 + 0x28) == param_4" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) == identifier) ))) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x24) == param_4)" ( (binary_expression "*(int *)(iVar11 + 0x24) == param_4" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) == identifier) ))) )) (goto_statement "goto LAB_0033afc8;" goto statement_identifier ;)) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" if (parenthesized_expression "((uint)local_res8[2] < (uint)local_res8[3])" ( (binary_expression "(uint)local_res8[2] < (uint)local_res8[3]" (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }" { (expression_statement "local_res8[2] = local_res8[2] + 4;" (assignment_expression "local_res8[2] = local_res8[2] + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "local_res8[2] + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033adc0:\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" statement_identifier : (if_statement "if (piVar9 < (int *)local_res8[3]) {\n        iVar3 = *piVar9;\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = *piVar9;\n      }" { (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) })))) (if_statement "if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }) (else_clause "else {\n        bVar13 = false;\n      }" else (compound_statement "{\n        bVar13 = false;\n      }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }))) }) (else_clause "else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" else (compound_statement "{\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033adc0;" goto statement_identifier ;) })) }))) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (expression_statement "iVar3 = param_6;" (assignment_expression "iVar3 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = *(int *)param_5[2];\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar3 = *(int *)param_5[2];" (assignment_expression "iVar3 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar3 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (if_statement "if ((iVar3 == -1) != bVar13) {\n      param_4 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::_M_get();\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" if (parenthesized_expression "((iVar3 == -1) != bVar13)" ( (binary_expression "(iVar3 == -1) != bVar13" (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) != identifier) )) (compound_statement "{\n      param_4 = istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>::_M_get();\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" { (ERROR "param_4 = istreambuf_iterator<wchar_t,std::" (comma_expression "param_4 = istreambuf_iterator<wchar_t,std" (assignment_expression "param_4 = istreambuf_iterator<wchar_t" identifier = (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier)) , identifier) : :) (expression_statement "char_traits<wchar_t>>::_M_get();" (binary_expression "char_traits<wchar_t>>::_M_get()" identifier < (binary_expression "wchar_t>>::_M_get()" identifier >> (ERROR "::" : :) (call_expression "_M_get()" identifier (argument_list "()" ( ))))) ;) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0033afc8;" goto statement_identifier ;) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (uVar4 != 0x10) goto LAB_0033ae20;" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;)) (labeled_statement "LAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) (if_statement "if (cVar8 == '\0') goto LAB_0033ae38;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0033ae38;" goto statement_identifier ;)) (labeled_statement "LAB_0033b0e0:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) comment (expression_statement "(*(code *)PTR_reserve_004331f4)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004331f4)(&local_68,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004331f4)" ( (pointer_expression "*(code *)PTR_reserve_004331f4" * (cast_expression "(code *)PTR_reserve_004331f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_68,0x20)" ( (pointer_expression "&local_68" & identifier) , number_literal ))) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x124)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x124)" ( (binary_expression "iVar11 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (if_statement "if (uVar17 == 0) goto LAB_0033ae54;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033ae54;" goto statement_identifier ;)) (labeled_statement "LAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar5 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      iVar5 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" statement_identifier : (if_statement "if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar5 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      iVar5 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar5 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      iVar5 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_34 = &local_68;" (assignment_expression "local_34 = &local_68" identifier = (pointer_expression "&local_68" & identifier)) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_3c = iVar11 + 0xcc;" (assignment_expression "local_3c = iVar11 + 0xcc" identifier = (binary_expression "iVar11 + 0xcc" identifier + number_literal)) ;) (labeled_statement "LAB_0033b128:\n      iVar5 = local_3c;" statement_identifier : (expression_statement "iVar5 = local_3c;" (assignment_expression "iVar5 = local_3c" identifier = identifier) ;)) (expression_statement "uVar16 = local_64;" (assignment_expression "uVar16 = local_64" identifier = identifier) ;) (expression_statement "local_44 = (uint)*(byte *)(iVar11 + 0x10);" (assignment_expression "local_44 = (uint)*(byte *)(iVar11 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (if_statement "if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)) {\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" if (parenthesized_expression "((local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4))" ( (binary_expression "(local_44 == 0) || (*(int *)(iVar11 + 0x28) != param_4)" (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x28) != param_4)" ( (binary_expression "*(int *)(iVar11 + 0x28) != param_4" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n        if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar6 - iVar5 >> 2;\n        if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" { (if_statement "if ((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))\n        goto LAB_0033b528;" if (parenthesized_expression "((param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0))" ( (binary_expression "(param_4 == *(int *)(iVar11 + 0x24)) ||\n           (iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0)" (parenthesized_expression "(param_4 == *(int *)(iVar11 + 0x24))" ( (binary_expression "param_4 == *(int *)(iVar11 + 0x24)" identifier == (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0)" ( (comma_expression "iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48)" identifier = (call_expression "(*(code *)PTR_wmemchr_004368f4)(local_3c,param_4,local_48)" (parenthesized_expression "(*(code *)PTR_wmemchr_004368f4)" ( (pointer_expression "*(code *)PTR_wmemchr_004368f4" * (cast_expression "(code *)PTR_wmemchr_004368f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,param_4,local_48)" ( identifier , identifier , identifier )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0033b528;" goto statement_identifier ;)) (expression_statement "uVar16 = iVar6 - iVar5 >> 2;" (assignment_expression "uVar16 = iVar6 - iVar5 >> 2" identifier = (binary_expression "iVar6 - iVar5 >> 2" (binary_expression "iVar6 - iVar5" identifier - identifier) >> number_literal)) ;) (if_statement "if (0x3c < iVar6 - iVar5) {\n          uVar16 = uVar16 - 6;\n        }" if (parenthesized_expression "(0x3c < iVar6 - iVar5)" ( (binary_expression "0x3c < iVar6 - iVar5" number_literal < (binary_expression "iVar6 - iVar5" identifier - identifier)) )) (compound_statement "{\n          uVar16 = uVar16 - 6;\n        }" { (expression_statement "uVar16 = uVar16 - 6;" (assignment_expression "uVar16 = uVar16 - 6" identifier = (binary_expression "uVar16 - 6" identifier - number_literal)) ;) })) (if_statement "if (uVar14 <= local_4c) {\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" if (parenthesized_expression "(uVar14 <= local_4c)" ( (binary_expression "uVar14 <= local_4c" identifier <= identifier) )) (compound_statement "{\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" { (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" identifier = (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar16 < uVar4 * uVar14)" ( (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" ~ identifier) < (binary_expression "uVar4 * uVar14" identifier * identifier)) ))))) ;) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" identifier = (binary_expression "uVar16 + uVar4 * uVar14" identifier + (binary_expression "uVar4 * uVar14" identifier * identifier))) ;) (goto_statement "goto LAB_0033b1b0;" goto statement_identifier ;) })) (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" identifier = identifier) ;) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;" if (parenthesized_expression "(uVar16 < (uint)local_res8[3])" ( (binary_expression "uVar16 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033b1c8;" goto statement_identifier ;)) (labeled_statement "LAB_0033b620:\n                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */\n        (**(code **)(*local_res8 + 0x28))();" statement_identifier : comment (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (if_statement "if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033b1d8;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" else (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }\n        local_44 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" { (if_statement "if (iVar3 == 0) {\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_0033af60;\n        }" { (if_statement "if (local_64 != 0) {\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar16 = 0;\n            uVar15 = 0;\n            goto LAB_0033b540;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033b540;" goto statement_identifier ;) })) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0033af60;" goto statement_identifier ;) })) (expression_statement "local_44 = (uint)(char)iVar3;" (assignment_expression "local_44 = (uint)(char)iVar3" identifier = (cast_expression "(uint)(char)iVar3" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_64 + 1;" (assignment_expression "local_30 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0xf;" (assignment_expression "uVar7 = 0xf" identifier = number_literal) ;) (if_statement "if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar7 = local_60[0];\n        }" { (expression_statement "uVar7 = local_60[0];" (assignment_expression "uVar7 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar7 < local_64 + 1) {\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" if (parenthesized_expression "(uVar7 < local_64 + 1)" ( (binary_expression "uVar7 < local_64 + 1" identifier < (binary_expression "local_64 + 1" identifier + number_literal)) )) (compound_statement "{\n                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */\n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" { comment (expression_statement "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" ( (pointer_expression "*(code *)PTR__M_mutate_00432e00" * (cast_expression "(code *)PTR__M_mutate_00432e00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_34,local_64,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" identifier = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_68 + uVar16) = (char)local_44;" (assignment_expression "*(char *)((int)local_68 + uVar16) = (char)local_44" (pointer_expression "*(char *)((int)local_68 + uVar16)" * (cast_expression "(char *)((int)local_68 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar16)" ( (binary_expression "(int)local_68 + uVar16" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" * (cast_expression "(undefined1 *)((int)local_68 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + local_30)" ( (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_0033b1b0:\n        uVar16 = local_res8[2];" statement_identifier : (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;" if (parenthesized_expression "((uint)local_res8[3] <= uVar16)" ( (binary_expression "(uint)local_res8[3] <= uVar16" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b620;" goto statement_identifier ;)) (labeled_statement "LAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 4;" (assignment_expression "local_res8[2] = uVar16 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033b1d8:\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }" statement_identifier : (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar5 = *piVar9;\n        }" { (expression_statement "iVar5 = *piVar9;" (assignment_expression "iVar5 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }" else (compound_statement "{\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }" { (expression_statement "iVar5 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar5 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) })))) (if_statement "if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) }))) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (expression_statement "iVar5 = param_6;" (assignment_expression "iVar5 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar5 = *(int *)param_5[2];\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar5 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if ((iVar5 == -1) != uVar12) {\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" if (parenthesized_expression "((iVar5 == -1) != uVar12)" ( (binary_expression "(iVar5 == -1) != uVar12" (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) != identifier) )) (compound_statement "{\n        param_4 = local_resc;\n        if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" { (expression_statement "param_4 = local_resc;" (assignment_expression "param_4 = local_resc" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            param_4 = *(int *)local_res8[2];\n          }" { (expression_statement "param_4 = *(int *)local_res8[2];" (assignment_expression "param_4 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" { comment (expression_statement "param_4 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "param_4 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (param_4 == -1) {\n            local_res8 = (int *)0x0;\n          }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (goto_statement "goto LAB_0033b128;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" else (compound_statement "{\n      local_50 = 0;\n      uVar14 = 0;\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) })))) (labeled_statement "LAB_0033af18:\n    if (local_64 == 0) goto LAB_0033af24;" statement_identifier : (if_statement "if (local_64 == 0) goto LAB_0033af24;" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033af24;" goto statement_identifier ;))) (labeled_statement "LAB_0033b538:\n    uVar15 = (undefined1)iVar3;" statement_identifier : (expression_statement "uVar15 = (undefined1)iVar3;" (assignment_expression "uVar15 = (undefined1)iVar3" identifier = (cast_expression "(undefined1)iVar3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033b540:\n    uVar4 = local_64;" statement_identifier : (expression_statement "uVar4 = local_64;" (assignment_expression "uVar4 = local_64" identifier = identifier) ;)) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = local_60[0];" (assignment_expression "uVar17 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) (if_statement "if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }" if (parenthesized_expression "(local_68 == local_40)" ( (binary_expression "local_68 == local_40" identifier == identifier) )) (compound_statement "{\n      uVar17 = 0xf;\n    }" { (expression_statement "uVar17 = 0xf;" (assignment_expression "uVar17 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" if (parenthesized_expression "(uVar17 < uVar12)" ( (binary_expression "uVar17 < uVar12" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" { (expression_statement "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" ( (pointer_expression "*(code *)PTR__M_mutate_00432e00" * (cast_expression "(code *)PTR__M_mutate_00432e00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_68,local_64,0,0,1)" ( (pointer_expression "&local_68" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((int)local_68 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_68 + uVar4)" * (cast_expression "(undefined1 *)((int)local_68 + uVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar4)" ( (binary_expression "(int)local_68 + uVar4" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" * (cast_expression "(undefined1 *)((int)local_68 + uVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar12)" ( (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" identifier = identifier) ;) (expression_statement "iVar11 = (*(code *)PTR___verify_grouping_00433d24)\n                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);" (assignment_expression "iVar11 = (*(code *)PTR___verify_grouping_00433d24)\n                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" identifier = (call_expression "(*(code *)PTR___verify_grouping_00433d24)\n                       (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" (parenthesized_expression "(*(code *)PTR___verify_grouping_00433d24)" ( (pointer_expression "*(code *)PTR___verify_grouping_00433d24" * (cast_expression "(code *)PTR___verify_grouping_00433d24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" ( (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar11 + 0xc)" * (cast_expression "(undefined4 *)(iVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) , (pointer_expression "&local_68" & identifier) )))) ;) (if_statement "if (iVar11 == 0) {\n      *param_8 = 4;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      *param_8 = 4;\n    }" { (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })) (if_statement "if ((((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) goto LAB_0033b5b4;" if (parenthesized_expression "((((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0))" ( (binary_expression "(((iVar3 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar13)) || (local_64 != 0))" ( (binary_expression "((iVar3 != 0) || (bVar13)) || (local_64 != 0)" (parenthesized_expression "((iVar3 != 0) || (bVar13))" ( (binary_expression "(iVar3 != 0) || (bVar13)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar13)" ( identifier ))) )) || (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0033b5b4;" goto statement_identifier ;)) }) (else_clause "else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    param_4 = 0;\n    iVar3 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar3 != 0) || (bVar13)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }" else (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    param_4 = 0;\n    iVar3 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar3 != 0) || (bVar13)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" else (compound_statement "{\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if ((iVar5 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;" if (parenthesized_expression "((iVar5 == -1) != (iVar3 == -1))" ( (binary_expression "(iVar5 == -1) != (iVar3 == -1)" (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) != (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0033ad4c;" goto statement_identifier ;)) (labeled_statement "LAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);" statement_identifier : (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "param_4 = 0;" (assignment_expression "param_4 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (labeled_statement "LAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;" statement_identifier : (if_statement "if (uVar4 == 0x10) goto LAB_0033b0c0;" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_0033b0c0;" goto statement_identifier ;))) (labeled_statement "LAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;) (if_statement "if (cVar8 != '\0') goto LAB_0033b0e0;" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0033b0e0;" goto statement_identifier ;)) (labeled_statement "LAB_0033ae38:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x124)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x124)" ( (binary_expression "iVar11 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) (if_statement "if (uVar17 != 0) goto LAB_0033b110;" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033b110;" goto statement_identifier ;)) (labeled_statement "LAB_0033ae54:\n    local_50 = 0;" statement_identifier : (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;)) (if_statement "if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033af18;" goto statement_identifier ;) })) (expression_statement "local_44 = local_48 + 0x30;" (assignment_expression "local_44 = local_48 + 0x30" identifier = (binary_expression "local_48 + 0x30" identifier + number_literal)) ;) (expression_statement "local_48 = (uint)(local_48 < 0xb);" (assignment_expression "local_48 = (uint)(local_48 < 0xb)" identifier = (call_expression "(uint)(local_48 < 0xb)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 < 0xb)" ( (binary_expression "local_48 < 0xb" identifier < number_literal) )))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;" statement_identifier : (if_statement "if (local_48 == 0) goto LAB_0033b3ac;" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033b3ac;" goto statement_identifier ;))) (labeled_statement "LAB_0033ae80:\n    if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" statement_identifier : (if_statement "if ((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" if (parenthesized_expression "((0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44))" ( (binary_expression "(0x2f < param_4) && (uVar16 = param_4 - 0x30, param_4 < (int)local_44)" (parenthesized_expression "(0x2f < param_4)" ( (binary_expression "0x2f < param_4" number_literal < identifier) )) && (parenthesized_expression "(uVar16 = param_4 - 0x30, param_4 < (int)local_44)" ( (comma_expression "uVar16 = param_4 - 0x30, param_4 < (int)local_44" (assignment_expression "uVar16 = param_4 - 0x30" identifier = (binary_expression "param_4 - 0x30" identifier - number_literal)) , (binary_expression "param_4 < (int)local_44" identifier < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" { (labeled_statement "LAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;" statement_identifier : (if_statement "if (uVar14 <= local_4c) goto LAB_0033b3cc;" if (parenthesized_expression "(uVar14 <= local_4c)" ( (binary_expression "uVar14 <= local_4c" identifier <= identifier) )) (goto_statement "goto LAB_0033b3cc;" goto statement_identifier ;))) (labeled_statement "LAB_0033aea8:\n      local_50 = 1;" statement_identifier : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;)) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;" if (parenthesized_expression "((uint)local_res8[3] <= uVar17)" ( (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b404;" goto statement_identifier ;)) (labeled_statement "LAB_0033aec4:\n      local_res8[2] = uVar17 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (do_statement "do {\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );" do (compound_statement "{\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      }" { (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar5 = *piVar9;\n        }\n        else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar5 = *piVar9;\n        }" { (expression_statement "iVar5 = *piVar9;" (assignment_expression "iVar5 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }" else (compound_statement "{\n          iVar5 = (**(code **)(*local_res8 + 0x24))();\n        }" { (expression_statement "iVar5 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar5 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar5 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) }) (else_clause "else {\n          bVar10 = false;\n        }" else (compound_statement "{\n          bVar10 = false;\n        }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) }))) (do_statement "do {\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        } while (local_res8 == (int *)0x0);" do (compound_statement "{\n          local_resc = -1;\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          param_4 = local_resc;\n          if (local_res8 == (int *)0x0) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (param_4 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = param_4 - 0x30;\n          if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar3 = iVar3 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n        }" { (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n            bVar1 = param_6 == -1;\n          }" { (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }" else (compound_statement "{\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar5 == -1;\n          }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar5 = *(int *)param_5[2];\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" else (compound_statement "{\n                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */\n              iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { comment (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar5 == -1) {\n                param_5 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "bVar1 = iVar5 == -1;" (assignment_expression "bVar1 = iVar5 == -1" identifier = (binary_expression "iVar5 == -1" identifier == number_literal)) ;) }))) (if_statement "if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" if (parenthesized_expression "(bVar1 == bVar10)" ( (binary_expression "bVar1 == bVar10" identifier == identifier) )) (compound_statement "{\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0033af18;" goto statement_identifier ;) })) (expression_statement "param_4 = local_resc;" (assignment_expression "param_4 = local_resc" identifier = identifier) ;) (if_statement "if (local_res8 == (int *)0x0) goto LAB_0033ae78;" if (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0033ae78;" goto statement_identifier ;)) (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            param_4 = *(int *)local_res8[2];\n          }\n          else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            param_4 = *(int *)local_res8[2];\n          }" { (expression_statement "param_4 = *(int *)local_res8[2];" (assignment_expression "param_4 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */\n            param_4 = (**(code **)(*local_res8 + 0x24))();\n          }" { comment (expression_statement "param_4 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "param_4 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (param_4 != -1) goto LAB_0033ae78;" if (parenthesized_expression "(param_4 != -1)" ( (binary_expression "param_4 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0033ae78;" goto statement_identifier ;)) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_48 != 0) goto LAB_0033ae80;" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033ae80;" goto statement_identifier ;)) (labeled_statement "LAB_0033b3ac:\n          uVar16 = param_4 - 0x30;" statement_identifier : (expression_statement "uVar16 = param_4 - 0x30;" (assignment_expression "uVar16 = param_4 - 0x30" identifier = (binary_expression "param_4 - 0x30" identifier - number_literal)) ;)) (if_statement "if (9 < uVar16) {\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }" if (parenthesized_expression "(9 < uVar16)" ( (binary_expression "9 < uVar16" number_literal < identifier) )) (compound_statement "{\n            if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }\n            uVar16 = param_4 - 0x57;\n            goto LAB_0033ae98;\n          }" { (if_statement "if (5 < param_4 - 0x61U) {\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }" if (parenthesized_expression "(5 < param_4 - 0x61U)" ( (binary_expression "5 < param_4 - 0x61U" number_literal < (binary_expression "param_4 - 0x61U" identifier - number_literal)) )) (compound_statement "{\n              uVar16 = param_4 - 0x37;\n              if (param_4 - 0x41U < 6) goto LAB_0033ae98;\n              goto LAB_0033b528;\n            }" { (expression_statement "uVar16 = param_4 - 0x37;" (assignment_expression "uVar16 = param_4 - 0x37" identifier = (binary_expression "param_4 - 0x37" identifier - number_literal)) ;) (if_statement "if (param_4 - 0x41U < 6) goto LAB_0033ae98;" if (parenthesized_expression "(param_4 - 0x41U < 6)" ( (binary_expression "param_4 - 0x41U < 6" (binary_expression "param_4 - 0x41U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0033ae98;" goto statement_identifier ;)) (goto_statement "goto LAB_0033b528;" goto statement_identifier ;) })) (expression_statement "uVar16 = param_4 - 0x57;" (assignment_expression "uVar16 = param_4 - 0x57" identifier = (binary_expression "param_4 - 0x57" identifier - number_literal)) ;) (goto_statement "goto LAB_0033ae98;" goto statement_identifier ;) })) (if_statement "if (local_4c < uVar14) goto LAB_0033aea8;" if (parenthesized_expression "(local_4c < uVar14)" ( (binary_expression "local_4c < uVar14" identifier < identifier) )) (goto_statement "goto LAB_0033aea8;" goto statement_identifier ;)) (labeled_statement "LAB_0033b3cc:\n          iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" identifier = (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar16 < uVar4 * uVar14)" ( (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" ~ identifier) < (binary_expression "uVar4 * uVar14" identifier * identifier)) ))))) ;) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" identifier = (binary_expression "uVar16 + uVar4 * uVar14" identifier + (binary_expression "uVar4 * uVar14" identifier * identifier))) ;) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;" if (parenthesized_expression "(uVar17 < (uint)local_res8[3])" ( (binary_expression "uVar17 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033aec4;" goto statement_identifier ;)) (labeled_statement "LAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) }) while (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_0033b528:\n    uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (if_statement "if (local_64 != 0) goto LAB_0033b538;" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033b538;" goto statement_identifier ;)) (labeled_statement "LAB_0033af24:\n    if ((iVar3 != 0) || (bVar13)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" statement_identifier : (if_statement "if ((iVar3 != 0) || (bVar13)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" if (parenthesized_expression "((iVar3 != 0) || (bVar13))" ( (binary_expression "(iVar3 != 0) || (bVar13)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar13)" ( identifier ))) )) (compound_statement "{\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" { (labeled_statement "LAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" statement_identifier : (if_statement "if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }" { (if_statement "if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar14 = -uVar14;\n        }" { (expression_statement "uVar14 = -uVar14;" (assignment_expression "uVar14 = -uVar14" identifier = (unary_expression "-uVar14" - identifier)) ;) })) (expression_statement "*param_9 = uVar14;" (assignment_expression "*param_9 = uVar14" (pointer_expression "*param_9" * identifier) = identifier) ;) }) (else_clause "else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" else (compound_statement "{\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })))) (goto_statement "goto LAB_0033af48;" goto statement_identifier ;) }))) }))) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" statement_identifier : (if_statement "if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) }))) (labeled_statement "LAB_0033af60:\n  *param_1 = local_res8;" statement_identifier : (expression_statement "*param_1 = local_res8;" (assignment_expression "*param_1 = local_res8" (pointer_expression "*param_1" * identifier) = identifier) ;)) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) }))
(translation_unit "int * FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}\n\n" (function_definition "int * FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}" primitive_type (pointer_declarator "* FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" * (function_declarator "FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" identifier (parameter_list "(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * 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 identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "__numpunct_cache<wchar_t> *this;" (binary_expression "__numpunct_cache<wchar_t> *this" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "*this" * identifier)) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "uint *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" identifier = identifier) ;) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" identifier = (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" ( (pointer_expression "*(code *)PTR__M_id_00433800" * (cast_expression "(code *)PTR__M_id_00433800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_00433d20)" ( identifier )))) ;) (expression_statement "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" identifier = (cast_expression "(int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" ( (binary_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4" (pointer_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc)" * (cast_expression "(int *)(*(int *)(param_7 + 0x6c) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_7 + 0x6c) + 0xc)" ( (binary_expression "*(int *)(param_7 + 0x6c) + 0xc" (pointer_expression "*(int *)(param_7 + 0x6c)" * (cast_expression "(int *)(param_7 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) + number_literal) )))) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (iVar11 == 0) {\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" { (expression_statement "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);" (assignment_expression "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" identifier = (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)" (parenthesized_expression "(__numpunct_cache<wchar_t> *)" ( (binary_expression "__numpunct_cache<wchar_t> *" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(0x128)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(this + 4) = 0;" (assignment_expression "*(undefined4 *)(this + 4) = 0" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 8) = 0;" (assignment_expression "*(undefined4 *)(this + 8) = 0" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0xc) = 0;" (assignment_expression "*(undefined4 *)(this + 0xc) = 0" (pointer_expression "*(undefined4 *)(this + 0xc)" * (cast_expression "(undefined4 *)(this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar2 = PTR_vtable_0043237c;" (assignment_expression "puVar2 = PTR_vtable_0043237c" identifier = identifier) ;) (expression_statement "this[0x10] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x10] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x10]" identifier [ number_literal ]) = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" ( (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (expression_statement "*(undefined4 *)(this + 0x14) = 0;" (assignment_expression "*(undefined4 *)(this + 0x14) = 0" (pointer_expression "*(undefined4 *)(this + 0x14)" * (cast_expression "(undefined4 *)(this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x18) = 0;" (assignment_expression "*(undefined4 *)(this + 0x18) = 0" (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)this = puVar2 + 8;" (assignment_expression "*(undefined **)this = puVar2 + 8" (pointer_expression "*(undefined **)this" * (cast_expression "(undefined **)this" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "puVar2 + 8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(this + 0x1c) = 0" (pointer_expression "*(undefined4 *)(this + 0x1c)" * (cast_expression "(undefined4 *)(this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x20) = 0;" (assignment_expression "*(undefined4 *)(this + 0x20) = 0" (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x24) = 0;" (assignment_expression "*(undefined4 *)(this + 0x24) = 0" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x28) = 0;" (assignment_expression "*(undefined4 *)(this + 0x28) = 0" (pointer_expression "*(undefined4 *)(this + 0x28)" * (cast_expression "(undefined4 *)(this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "this[0x124] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x124] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x124]" identifier [ number_literal ]) = (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" ( (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > (ERROR ")" )) number_literal) ))) ;) (labeled_statement "std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));" statement_identifier (ERROR "::__numpunct_cache<wchar_t>:" : : (binary_expression "__numpunct_cache<wchar_t" identifier < identifier) > :) : (expression_statement "_M_cache(this,(locale *)(param_7 + 0x6c));" (call_expression "_M_cache(this,(locale *)(param_7 + 0x6c))" identifier (argument_list "(this,(locale *)(param_7 + 0x6c))" ( identifier , (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) ))) ;)) (expression_statement "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004338a4)" ( (pointer_expression "*(code *)PTR__M_install_cache_004338a4" * (cast_expression "(code *)PTR__M_install_cache_004338a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" ( (pointer_expression "*(undefined4 *)(param_7 + 0x6c)" * (cast_expression "(undefined4 *)(param_7 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) })) (expression_statement "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a" identifier = (binary_expression "*(uint *)(param_7 + 0xc) & 0x4a" (pointer_expression "*(uint *)(param_7 + 0xc)" * (cast_expression "(uint *)(param_7 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0xc)" ( (binary_expression "param_7 + 0xc" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0x40)" ( (binary_expression "uVar16 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" { (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" identifier = number_literal) ;) (if_statement "if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n      uVar4 = 0x10;\n    }" { (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) })) }))) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar3 = *(int *)local_res8[2];\n    }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }" { (if_statement "if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;" if (parenthesized_expression "((param_6 == -1) != (iVar3 == -1))" ( (binary_expression "(param_6 == -1) != (iVar3 == -1)" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) != (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0033ad4c;" goto statement_identifier ;)) (labeled_statement "LAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);" statement_identifier : (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (labeled_statement "LAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;" statement_identifier : (if_statement "if (uVar4 == 0x10) goto LAB_0033b0c0;" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_0033b0c0;" goto statement_identifier ;))) (labeled_statement "LAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;) (if_statement "if (cVar8 == '\0') goto LAB_0033ae38;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0033ae38;" goto statement_identifier ;)) (labeled_statement "LAB_0033b0e0:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) (expression_statement "(*(code *)PTR_reserve_004331f4)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004331f4)(&local_68,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004331f4)" ( (pointer_expression "*(code *)PTR_reserve_004331f4" * (cast_expression "(code *)PTR_reserve_004331f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_68,0x20)" ( (pointer_expression "&local_68" & identifier) , number_literal ))) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x124)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x124)" ( (binary_expression "iVar11 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (if_statement "if (uVar17 != 0) goto LAB_0033b110;" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033b110;" goto statement_identifier ;)) (labeled_statement "LAB_0033ae54:\n    local_50 = 0;" statement_identifier : (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;)) (if_statement "if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033af18;" goto statement_identifier ;) })) (expression_statement "local_44 = local_48 + 0x30;" (assignment_expression "local_44 = local_48 + 0x30" identifier = (binary_expression "local_48 + 0x30" identifier + number_literal)) ;) (expression_statement "local_48 = (uint)(local_48 < 0xb);" (assignment_expression "local_48 = (uint)(local_48 < 0xb)" identifier = (call_expression "(uint)(local_48 < 0xb)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 < 0xb)" ( (binary_expression "local_48 < 0xb" identifier < number_literal) )))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;" statement_identifier : (if_statement "if (local_48 == 0) goto LAB_0033b3ac;" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033b3ac;" goto statement_identifier ;))) (labeled_statement "LAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" statement_identifier : (if_statement "if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" if (parenthesized_expression "((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44))" ( (binary_expression "(0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)" (parenthesized_expression "(0x2f < iVar3)" ( (binary_expression "0x2f < iVar3" number_literal < identifier) )) && (parenthesized_expression "(uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)" ( (comma_expression "uVar16 = iVar3 - 0x30, iVar3 < (int)local_44" (assignment_expression "uVar16 = iVar3 - 0x30" identifier = (binary_expression "iVar3 - 0x30" identifier - number_literal)) , (binary_expression "iVar3 < (int)local_44" identifier < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" { (labeled_statement "LAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;" statement_identifier : (if_statement "if (uVar14 <= local_4c) goto LAB_0033b3cc;" if (parenthesized_expression "(uVar14 <= local_4c)" ( (binary_expression "uVar14 <= local_4c" identifier <= identifier) )) (goto_statement "goto LAB_0033b3cc;" goto statement_identifier ;))) (labeled_statement "LAB_0033aea8:\n      local_50 = 1;" statement_identifier : (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;)) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;" if (parenthesized_expression "((uint)local_res8[3] <= uVar17)" ( (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b404;" goto statement_identifier ;)) (labeled_statement "LAB_0033aec4:\n      local_res8[2] = uVar17 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (do_statement "do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );" do (compound_statement "{\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      }" { (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *piVar9;\n        }" { (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) }) (else_clause "else {\n          bVar10 = false;\n        }" else (compound_statement "{\n          bVar10 = false;\n        }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) }))) (do_statement "do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);" do (compound_statement "{\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        }" { (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }" { (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) }) (else_clause "else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" else (compound_statement "{\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { (expression_statement "iVar3 = *(int *)param_5[2];" (assignment_expression "iVar3 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" else (compound_statement "{\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { (expression_statement "iVar3 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar3 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "bVar1 = iVar3 == -1;" (assignment_expression "bVar1 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" identifier == number_literal)) ;) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) }))) (expression_statement "local_resc = iVar3;" (assignment_expression "local_resc = iVar3" identifier = identifier) ;) (if_statement "if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" if (parenthesized_expression "(bVar1 == bVar10)" ( (binary_expression "bVar1 == bVar10" identifier == identifier) )) (compound_statement "{\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0033af18;" goto statement_identifier ;) })) (if_statement "if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;" if (parenthesized_expression "((local_res8 == (int *)0x0) || (iVar3 != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (iVar3 != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) ))) )) (goto_statement "goto LAB_0033ae78;" goto statement_identifier ;)) (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 != -1) goto LAB_0033ae78;" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0033ae78;" goto statement_identifier ;)) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_48 != 0) goto LAB_0033ae80;" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033ae80;" goto statement_identifier ;)) (labeled_statement "LAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;" statement_identifier : (expression_statement "uVar16 = iVar3 - 0x30;" (assignment_expression "uVar16 = iVar3 - 0x30" identifier = (binary_expression "iVar3 - 0x30" identifier - number_literal)) ;)) (if_statement "if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }" if (parenthesized_expression "(9 < uVar16)" ( (binary_expression "9 < uVar16" number_literal < identifier) )) (compound_statement "{\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }" { (if_statement "if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }" if (parenthesized_expression "(iVar3 - 0x61U < 6)" ( (binary_expression "iVar3 - 0x61U < 6" (binary_expression "iVar3 - 0x61U" identifier - number_literal) < number_literal) )) (compound_statement "{\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }" { (expression_statement "uVar16 = iVar3 - 0x57;" (assignment_expression "uVar16 = iVar3 - 0x57" identifier = (binary_expression "iVar3 - 0x57" identifier - number_literal)) ;) (goto_statement "goto LAB_0033ae98;" goto statement_identifier ;) })) (expression_statement "uVar16 = iVar3 - 0x37;" (assignment_expression "uVar16 = iVar3 - 0x37" identifier = (binary_expression "iVar3 - 0x37" identifier - number_literal)) ;) (if_statement "if (5 < iVar3 - 0x41U) goto LAB_0033b528;" if (parenthesized_expression "(5 < iVar3 - 0x41U)" ( (binary_expression "5 < iVar3 - 0x41U" number_literal < (binary_expression "iVar3 - 0x41U" identifier - number_literal)) )) (goto_statement "goto LAB_0033b528;" goto statement_identifier ;)) (goto_statement "goto LAB_0033ae98;" goto statement_identifier ;) })) (if_statement "if (local_4c < uVar14) goto LAB_0033aea8;" if (parenthesized_expression "(local_4c < uVar14)" ( (binary_expression "local_4c < uVar14" identifier < identifier) )) (goto_statement "goto LAB_0033aea8;" goto statement_identifier ;)) (labeled_statement "LAB_0033b3cc:\n          iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" identifier = (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar16 < uVar4 * uVar14)" ( (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" ~ identifier) < (binary_expression "uVar4 * uVar14" identifier * identifier)) ))))) ;) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" identifier = (binary_expression "uVar16 + uVar4 * uVar14" identifier + (binary_expression "uVar4 * uVar14" identifier * identifier))) ;) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;" if (parenthesized_expression "(uVar17 < (uint)local_res8[3])" ( (binary_expression "uVar17 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033aec4;" goto statement_identifier ;)) (labeled_statement "LAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) }) while (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (labeled_statement "LAB_0033b528:\n    uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (if_statement "if (local_64 == 0) goto LAB_0033af24;" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033af24;" goto statement_identifier ;)) (labeled_statement "LAB_0033b538:\n    uVar15 = (undefined1)iVar5;" statement_identifier : (expression_statement "uVar15 = (undefined1)iVar5;" (assignment_expression "uVar15 = (undefined1)iVar5" identifier = (cast_expression "(undefined1)iVar5" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033b540:\n    uVar4 = local_64;" statement_identifier : (expression_statement "uVar4 = local_64;" (assignment_expression "uVar4 = local_64" identifier = identifier) ;)) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = local_60[0];" (assignment_expression "uVar17 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) (if_statement "if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }" if (parenthesized_expression "(local_68 == local_40)" ( (binary_expression "local_68 == local_40" identifier == identifier) )) (compound_statement "{\n      uVar17 = 0xf;\n    }" { (expression_statement "uVar17 = 0xf;" (assignment_expression "uVar17 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" if (parenthesized_expression "(uVar17 < uVar12)" ( (binary_expression "uVar17 < uVar12" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" { (expression_statement "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" ( (pointer_expression "*(code *)PTR__M_mutate_00432e00" * (cast_expression "(code *)PTR__M_mutate_00432e00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_68,local_64,0,0,1)" ( (pointer_expression "&local_68" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((int)local_68 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_68 + uVar4)" * (cast_expression "(undefined1 *)((int)local_68 + uVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar4)" ( (binary_expression "(int)local_68 + uVar4" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" * (cast_expression "(undefined1 *)((int)local_68 + uVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar12)" ( (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);" (assignment_expression "iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" identifier = (call_expression "(*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" (parenthesized_expression "(*(code *)PTR___verify_grouping_00433d24)" ( (pointer_expression "*(code *)PTR___verify_grouping_00433d24" * (cast_expression "(code *)PTR___verify_grouping_00433d24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" ( (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar11 + 0xc)" * (cast_expression "(undefined4 *)(iVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) , (pointer_expression "&local_68" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n      *param_8 = 4;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      *param_8 = 4;\n    }" { (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })) (if_statement "if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" if (parenthesized_expression "((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0))" ( (binary_expression "(((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)" (parenthesized_expression "(((iVar5 != 0) || (bVar13)) || (local_64 != 0))" ( (binary_expression "((iVar5 != 0) || (bVar13)) || (local_64 != 0)" (parenthesized_expression "((iVar5 != 0) || (bVar13))" ( (binary_expression "(iVar5 != 0) || (bVar13)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar13)" ( identifier ))) )) || (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" { (labeled_statement "LAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" statement_identifier : (if_statement "if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }" { (if_statement "if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar14 = -uVar14;\n        }" { (expression_statement "uVar14 = -uVar14;" (assignment_expression "uVar14 = -uVar14" identifier = (unary_expression "-uVar14" - identifier)) ;) })) (expression_statement "*param_9 = uVar14;" (assignment_expression "*param_9 = uVar14" (pointer_expression "*param_9" * identifier) = identifier) ;) }) (else_clause "else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" else (compound_statement "{\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })))) (goto_statement "goto LAB_0033af48;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" else (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" else (compound_statement "{\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" { (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;" if (parenthesized_expression "((iVar5 == -1) == (iVar3 == -1))" ( (binary_expression "(iVar5 == -1) == (iVar3 == -1)" (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) (goto_statement "goto LAB_0033b298;" goto statement_identifier ;)) (labeled_statement "LAB_0033ad4c:\n    iVar3 = local_resc;" statement_identifier : (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;)) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = *(int *)local_res8[2];\n      }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);" (assignment_expression "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3)" identifier = (call_expression "(uint)(*(int *)(iVar11 + 0xbc) == iVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar11 + 0xbc) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xbc) == iVar3" (pointer_expression "*(int *)(iVar11 + 0xbc)" * (cast_expression "(int *)(iVar11 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xbc)" ( (binary_expression "iVar11 + 0xbc" identifier + number_literal) )))) == identifier) )))) ;) (if_statement "if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" if (parenthesized_expression "((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3))" ( (binary_expression "(*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)" (parenthesized_expression "(*(int *)(iVar11 + 0xbc) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xbc) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xbc)" * (cast_expression "(int *)(iVar11 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xbc)" ( (binary_expression "iVar11 + 0xbc" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(*(int *)(iVar11 + 0xc0) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xc0) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xc0)" * (cast_expression "(int *)(iVar11 + 0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc0)" ( (binary_expression "iVar11 + 0xc0" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0033afc8:\n      iVar5 = 0;" statement_identifier : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (do_statement "do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);" do (compound_statement "{\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      }" { (if_statement "if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }" if (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3))" ( (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar11 + 0x28) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x28) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) == identifier) ))) )) (compound_statement "{\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }" { (if_statement "if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (compound_statement "{\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;) })) (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0e0;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar11 + 0x24) == iVar3) break;" if (parenthesized_expression "(*(int *)(iVar11 + 0x24) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x24) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar11 + 0xcc) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xcc) == iVar3" (pointer_expression "*(int *)(iVar11 + 0xcc)" * (cast_expression "(int *)(iVar11 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xcc)" ( (binary_expression "iVar11 + 0xcc" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }" { (if_statement "if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }" { (if_statement "if (uVar4 != 10) goto LAB_0033b008;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_0033b008;" goto statement_identifier ;)) (if_statement "if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar5 = 0;\n              uVar4 = 8;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" else (compound_statement "{\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" { (labeled_statement "LAB_0033b4b4:\n              iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }))) }) (else_clause "else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" else (compound_statement "{\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (if_statement "if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar5 = 0;\n              uVar4 = 8;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) }) (else_clause "else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" else (compound_statement "{\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" { (if_statement "if (uVar4 != 8) goto LAB_0033b4b4;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0033b4b4;" goto statement_identifier ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }))) }))) (labeled_statement "LAB_0033b038:\n          uVar17 = local_res8[2];" statement_identifier : (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;" if (parenthesized_expression "(uVar17 < (uint)local_res8[3])" ( (binary_expression "uVar17 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033b050;" goto statement_identifier ;)) (labeled_statement "LAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033b064;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" else (compound_statement "{\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" { (if_statement "if (!bVar13) break;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" statement_identifier : (if_statement "if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" if (parenthesized_expression "((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3))" ( (binary_expression "(*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)" (parenthesized_expression "(*(int *)(iVar11 + 0xc4) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0xc4) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xc4)" * (cast_expression "(int *)(iVar11 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc4)" ( (binary_expression "iVar11 + 0xc4" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(*(int *)(iVar11 + 200) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 200) != iVar3" (pointer_expression "*(int *)(iVar11 + 200)" * (cast_expression "(int *)(iVar11 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 200)" ( (binary_expression "iVar11 + 200" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) }))) (if_statement "if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" { (if_statement "if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (goto_statement "goto LAB_0033b038;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;" if (parenthesized_expression "((uint)local_res8[3] <= uVar17)" ( (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b44c;" goto statement_identifier ;)) (labeled_statement "LAB_0033b050:\n          local_res8[2] = uVar17 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033b064:\n          local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar6 = *piVar9;\n          }" { (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "iVar6 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar6 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            uVar17 = 0;\n          }" else (compound_statement "{\n            uVar17 = 0;\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) }))) }))) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" if (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" ( (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) ))) )) (compound_statement "{\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }" { (if_statement "if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;" if (parenthesized_expression "((param_6 == -1) == uVar17)" ( (binary_expression "(param_6 == -1) == uVar17" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_0033b0ac;" goto statement_identifier ;)) }) (else_clause "else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" else (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "iVar6 = *(int *)param_5[2];" (assignment_expression "iVar6 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" else (compound_statement "{\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar6 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (expression_statement "uVar17 = local_50;" (assignment_expression "uVar17 = local_50" identifier = identifier) ;) (if_statement "if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (if_statement "if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" if (parenthesized_expression "((iVar6 == -1) == uVar17)" ( (binary_expression "(iVar6 == -1) == uVar17" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) == identifier) )) (compound_statement "{\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" { (labeled_statement "LAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);" statement_identifier : (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033b0b4;" goto statement_identifier ;) })) (if_statement "if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;" if (parenthesized_expression "(((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3))" ( (binary_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)" (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3))" ( (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(iVar11 + 0x28) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x28) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) == identifier) ))) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x24) == iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x24) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) == identifier) ))) )) (goto_statement "goto LAB_0033afc8;" goto statement_identifier ;)) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" if (parenthesized_expression "((uint)local_res8[2] < (uint)local_res8[3])" ( (binary_expression "(uint)local_res8[2] < (uint)local_res8[3]" (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }" { (expression_statement "local_res8[2] = local_res8[2] + 4;" (assignment_expression "local_res8[2] = local_res8[2] + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "local_res8[2] + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033adc0:\n      local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar5 = *piVar9;\n      }" { (expression_statement "iVar5 = *piVar9;" (assignment_expression "iVar5 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" else (compound_statement "{\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" { (expression_statement "iVar5 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar5 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) }) (else_clause "else {\n        bVar13 = false;\n      }" else (compound_statement "{\n        bVar13 = false;\n      }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }))) }) (else_clause "else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" else (compound_statement "{\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033adc0;" goto statement_identifier ;) })) }))) (expression_statement "iVar5 = param_6;" (assignment_expression "iVar5 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" else (compound_statement "{\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" { (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (if_statement "if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" if (parenthesized_expression "((iVar5 == -1) != bVar13)" ( (binary_expression "(iVar5 == -1) != bVar13" (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) != identifier) )) (compound_statement "{\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" { (expression_statement "iVar3 = FUN_003348d8(&local_res8,local_resc);" (assignment_expression "iVar3 = FUN_003348d8(&local_res8,local_resc)" identifier = (call_expression "FUN_003348d8(&local_res8,local_resc)" identifier (argument_list "(&local_res8,local_resc)" ( (pointer_expression "&local_res8" & identifier) , identifier )))) ;) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0033afc8;" goto statement_identifier ;) })) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" identifier = (pointer_expression "*(char *)(iVar11 + 0x10)" * (cast_expression "(char *)(iVar11 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (uVar4 != 0x10) goto LAB_0033ae20;" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0033ae20;" goto statement_identifier ;)) (labeled_statement "LAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) (if_statement "if (cVar8 != '\0') goto LAB_0033b0e0;" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0033b0e0;" goto statement_identifier ;)) (labeled_statement "LAB_0033ae38:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x124)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x124)" ( (binary_expression "iVar11 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) (if_statement "if (uVar17 == 0) goto LAB_0033ae54;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033ae54;" goto statement_identifier ;)) (labeled_statement "LAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" statement_identifier : (if_statement "if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_34 = &local_68;" (assignment_expression "local_34 = &local_68" identifier = (pointer_expression "&local_68" & identifier)) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_3c = iVar11 + 0xcc;" (assignment_expression "local_3c = iVar11 + 0xcc" identifier = (binary_expression "iVar11 + 0xcc" identifier + number_literal)) ;) (labeled_statement "LAB_0033b128:\n      iVar6 = local_3c;" statement_identifier : (expression_statement "iVar6 = local_3c;" (assignment_expression "iVar6 = local_3c" identifier = identifier) ;)) (expression_statement "uVar16 = local_64;" (assignment_expression "uVar16 = local_64" identifier = identifier) ;) (expression_statement "local_44 = (uint)*(byte *)(iVar11 + 0x10);" (assignment_expression "local_44 = (uint)*(byte *)(iVar11 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (if_statement "if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" if (parenthesized_expression "((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3))" ( (binary_expression "(local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)" (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(iVar11 + 0x28) != iVar3)" ( (binary_expression "*(int *)(iVar11 + 0x28) != iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" { (if_statement "if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;" if (parenthesized_expression "((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))" ( (binary_expression "(iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0)" (parenthesized_expression "(iVar3 == *(int *)(iVar11 + 0x24))" ( (binary_expression "iVar3 == *(int *)(iVar11 + 0x24)" identifier == (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48)" identifier = (call_expression "(*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48)" (parenthesized_expression "(*(code *)PTR_wmemchr_004368f4)" ( (pointer_expression "*(code *)PTR_wmemchr_004368f4" * (cast_expression "(code *)PTR_wmemchr_004368f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,iVar3,local_48)" ( identifier , identifier , identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0033b528;" goto statement_identifier ;)) (expression_statement "uVar16 = iVar3 - iVar6 >> 2;" (assignment_expression "uVar16 = iVar3 - iVar6 >> 2" identifier = (binary_expression "iVar3 - iVar6 >> 2" (binary_expression "iVar3 - iVar6" identifier - identifier) >> number_literal)) ;) (if_statement "if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }" if (parenthesized_expression "(0x3c < iVar3 - iVar6)" ( (binary_expression "0x3c < iVar3 - iVar6" number_literal < (binary_expression "iVar3 - iVar6" identifier - identifier)) )) (compound_statement "{\n          uVar16 = uVar16 - 6;\n        }" { (expression_statement "uVar16 = uVar16 - 6;" (assignment_expression "uVar16 = uVar16 - 6" identifier = (binary_expression "uVar16 - 6" identifier - number_literal)) ;) })) (if_statement "if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" if (parenthesized_expression "(uVar14 <= local_4c)" ( (binary_expression "uVar14 <= local_4c" identifier <= identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" identifier = (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar16 < uVar4 * uVar14)" ( (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" ~ identifier) < (binary_expression "uVar4 * uVar14" identifier * identifier)) ))))) ;) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" identifier = (binary_expression "uVar16 + uVar4 * uVar14" identifier + (binary_expression "uVar4 * uVar14" identifier * identifier))) ;) (goto_statement "goto LAB_0033b1b0;" goto statement_identifier ;) })) (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" identifier = identifier) ;) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;" if (parenthesized_expression "((uint)local_res8[3] <= uVar16)" ( (binary_expression "(uint)local_res8[3] <= uVar16" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0033b620;" goto statement_identifier ;)) (labeled_statement "LAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 4;" (assignment_expression "local_res8[2] = uVar16 + 4" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 4" identifier + number_literal)) ;)) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0033b1d8:\n        local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" if (parenthesized_expression "(piVar9 < (int *)local_res8[3])" ( (binary_expression "piVar9 < (int *)local_res8[3]" identifier < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *piVar9;\n        }" { (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) }) (else_clause "else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" else (compound_statement "{\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" { (if_statement "if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }" { (if_statement "if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }" { (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0033af60;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033b540;" goto statement_identifier ;) })) (expression_statement "local_44 = (uint)(char)iVar5;" (assignment_expression "local_44 = (uint)(char)iVar5" identifier = (cast_expression "(uint)(char)iVar5" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_64 + 1;" (assignment_expression "local_30 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 0xf;" (assignment_expression "uVar7 = 0xf" identifier = number_literal) ;) (if_statement "if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar7 = local_60[0];\n        }" { (expression_statement "uVar7 = local_60[0];" (assignment_expression "uVar7 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" if (parenthesized_expression "(uVar7 < local_64 + 1)" ( (binary_expression "uVar7 < local_64 + 1" identifier < (binary_expression "local_64 + 1" identifier + number_literal)) )) (compound_statement "{\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" { (expression_statement "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" ( (pointer_expression "*(code *)PTR__M_mutate_00432e00" * (cast_expression "(code *)PTR__M_mutate_00432e00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_34,local_64,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" identifier = identifier) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_68 + uVar16) = (char)local_44;" (assignment_expression "*(char *)((int)local_68 + uVar16) = (char)local_44" (pointer_expression "*(char *)((int)local_68 + uVar16)" * (cast_expression "(char *)((int)local_68 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar16)" ( (binary_expression "(int)local_68 + uVar16" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" * (cast_expression "(undefined1 *)((int)local_68 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + local_30)" ( (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_0033b1b0:\n        uVar16 = local_res8[2];" statement_identifier : (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;" if (parenthesized_expression "(uVar16 < (uint)local_res8[3])" ( (binary_expression "uVar16 < (uint)local_res8[3]" identifier < (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0033b1c8;" goto statement_identifier ;)) (labeled_statement "LAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" if (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" { (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" identifier = (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0033b1d8;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = param_6;" (assignment_expression "iVar3 = param_6" identifier = identifier) ;) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = *(int *)param_5[2];" (assignment_expression "iVar3 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) (if_statement "if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" { (expression_statement "iVar3 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar3 = (**(code **)(*param_5 + 0x24))(param_5)" identifier = (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" { (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" if (parenthesized_expression "((iVar3 == -1) != uVar12)" ( (binary_expression "(iVar3 == -1) != uVar12" (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) != identifier) )) (compound_statement "{\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" { (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" identifier = identifier) ;) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" if (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" ( (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" ( (binary_expression "local_res8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) ))) )) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" { (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" if (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" ( (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_res8[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" { (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" identifier = (pointer_expression "*(int *)local_res8[2]" * (cast_expression "(int *)local_res8[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" else (compound_statement "{\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" { (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" identifier = (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" ( (pointer_expression "**(code **)(*local_res8 + 0x24)" * (pointer_expression "*(code **)(*local_res8 + 0x24)" * (cast_expression "(code **)(*local_res8 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x24)" ( (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (goto_statement "goto LAB_0033b128;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" else (compound_statement "{\n      local_50 = 0;\n      uVar14 = 0;\n    }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) })))) (labeled_statement "LAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;" statement_identifier : (if_statement "if (local_64 != 0) goto LAB_0033b538;" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0033b538;" goto statement_identifier ;))) (labeled_statement "LAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;" statement_identifier : (if_statement "if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;" if (parenthesized_expression "((iVar5 != 0) || (bVar13))" ( (binary_expression "(iVar5 != 0) || (bVar13)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar13)" ( identifier ))) )) (goto_statement "goto LAB_0033b5b4;" goto statement_identifier ;))) }))) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" statement_identifier : (if_statement "if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) }))) (labeled_statement "LAB_0033af60:\n  *param_1 = (int)local_res8;" statement_identifier : (expression_statement "*param_1 = (int)local_res8;" (assignment_expression "*param_1 = (int)local_res8" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)local_res8" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (binary_expression (binary_expression IDENT < IDENT) > (pointer_expression * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) > (pointer_expression * IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) > (ERROR )) LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) > (ERROR )) LIT) ))) ;) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) > :) : (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) != (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression ~ IDENT) < (binary_expression IDENT * IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( BOOL )) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , LIT , LIT , LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( IDENT ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT / IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression ~ IDENT) < (binary_expression IDENT * IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , LIT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( IDENT ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int * FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}" (primitive_type "int") (pointer_declarator "* FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" (* "*") (function_declarator "FUN_0033ac64(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" (identifier "FUN_0033ac64") (parameter_list "(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6\n                  ,int param_7,uint *param_8,uint *param_9)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (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") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "uint *param_8" (type_identifier "uint") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "uint *param_9" (type_identifier "uint") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  char cVar8;\n  int iVar6;\n  uint uVar7;\n  __numpunct_cache<wchar_t> *this;\n  int *piVar9;\n  bool bVar10;\n  int iVar11;\n  uint uVar12;\n  bool bVar13;\n  uint uVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint **local_34;\n  uint local_30;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);\n  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar11 = *piVar9;\n  if (iVar11 == 0) {\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }\n  iVar3 = local_resc;\n  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }\n  if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_0033af60:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return param_1;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (expression_statement "__numpunct_cache<wchar_t> *this;" (binary_expression "__numpunct_cache<wchar_t> *this" (binary_expression "__numpunct_cache<wchar_t" (identifier "__numpunct_cache") (< "<") (identifier "wchar_t")) (> ">") (pointer_expression "*this" (* "*") (identifier "this"))) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined1 uVar15;" (type_identifier "undefined1") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int *local_res8;" (primitive_type "int") (pointer_declarator "*local_res8" (* "*") (identifier "local_res8")) (; ";")) (declaration "int local_resc;" (primitive_type "int") (identifier "local_resc") (; ";")) (declaration "uint *local_68;" (type_identifier "uint") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "uint local_60 [4];" (type_identifier "uint") (array_declarator "local_60 [4]" (identifier "local_60") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "uint *local_40;" (type_identifier "uint") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "uint **local_34;" (type_identifier "uint") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34"))) (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" (identifier "local_res8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" (identifier "local_resc") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00433d20)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" (( "(") (pointer_expression "*(code *)PTR__M_id_00433800" (* "*") (cast_expression "(code *)PTR__M_id_00433800" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_id_00433800"))) () ")")) (argument_list "(PTR_id_00433d20)" (( "(") (identifier "PTR_id_00433d20") () ")")))) (; ";")) (expression_statement "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4" (pointer_expression "*(int *)(*(int *)(param_7 + 0x6c) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(param_7 + 0x6c) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_7 + 0x6c) + 0xc)" (( "(") (binary_expression "*(int *)(param_7 + 0x6c) + 0xc" (pointer_expression "*(int *)(param_7 + 0x6c)" (* "*") (cast_expression "(int *)(param_7 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 0x6c)" (( "(") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" (identifier "iVar11") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (if_statement "if (iVar11 == 0) {\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);\n    *(undefined4 *)(this + 4) = 0;\n    *(undefined4 *)(this + 8) = 0;\n    *(undefined4 *)(this + 0xc) = 0;\n    puVar2 = PTR_vtable_0043237c;\n    this[0x10] = (__numpunct_cache<wchar_t>)0x0;\n    *(undefined4 *)(this + 0x14) = 0;\n    *(undefined4 *)(this + 0x18) = 0;\n    *(undefined **)this = puVar2 + 8;\n    *(undefined4 *)(this + 0x1c) = 0;\n    *(undefined4 *)(this + 0x20) = 0;\n    *(undefined4 *)(this + 0x24) = 0;\n    *(undefined4 *)(this + 0x28) = 0;\n                    \n    this[0x124] = (__numpunct_cache<wchar_t>)0x0;\n    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));\n    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);\n    iVar11 = *piVar9;\n  }" ({ "{") (expression_statement "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);" (assignment_expression "this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" (identifier "this") (= "=") (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128)" (call_expression "(__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)" (parenthesized_expression "(__numpunct_cache<wchar_t> *)" (( "(") (binary_expression "__numpunct_cache<wchar_t> *" (binary_expression "__numpunct_cache<wchar_t" (identifier "__numpunct_cache") (< "<") (identifier "wchar_t")) (> ">") (pointer_expression "*" (* "*") (identifier ""))) () ")")) (argument_list "(*(code *)PTR_operator_new_0043233c)" (( "(") (pointer_expression "*(code *)PTR_operator_new_0043233c" (* "*") (cast_expression "(code *)PTR_operator_new_0043233c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_0043233c"))) () ")"))) (argument_list "(0x128)" (( "(") (number_literal "0x128") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(this + 4) = 0;" (assignment_expression "*(undefined4 *)(this + 4) = 0" (pointer_expression "*(undefined4 *)(this + 4)" (* "*") (cast_expression "(undefined4 *)(this + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 8) = 0;" (assignment_expression "*(undefined4 *)(this + 8) = 0" (pointer_expression "*(undefined4 *)(this + 8)" (* "*") (cast_expression "(undefined4 *)(this + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0xc) = 0;" (assignment_expression "*(undefined4 *)(this + 0xc) = 0" (pointer_expression "*(undefined4 *)(this + 0xc)" (* "*") (cast_expression "(undefined4 *)(this + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = PTR_vtable_0043237c;" (assignment_expression "puVar2 = PTR_vtable_0043237c" (identifier "puVar2") (= "=") (identifier "PTR_vtable_0043237c")) (; ";")) (expression_statement "this[0x10] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x10] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x10]" (identifier "this") ([ "[") (number_literal "0x10") (] "]")) (= "=") (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" (( "(") (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" (identifier "__numpunct_cache") (< "<") (identifier "wchar_t")) (> ">") (ERROR ")" () ")")) (number_literal "0x0")) () ""))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x14) = 0;" (assignment_expression "*(undefined4 *)(this + 0x14) = 0" (pointer_expression "*(undefined4 *)(this + 0x14)" (* "*") (cast_expression "(undefined4 *)(this + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x14)" (( "(") (binary_expression "this + 0x14" (identifier "this") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x18) = 0;" (assignment_expression "*(undefined4 *)(this + 0x18) = 0" (pointer_expression "*(undefined4 *)(this + 0x18)" (* "*") (cast_expression "(undefined4 *)(this + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)this = puVar2 + 8;" (assignment_expression "*(undefined **)this = puVar2 + 8" (pointer_expression "*(undefined **)this" (* "*") (cast_expression "(undefined **)this" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (binary_expression "puVar2 + 8" (identifier "puVar2") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(this + 0x1c) = 0" (pointer_expression "*(undefined4 *)(this + 0x1c)" (* "*") (cast_expression "(undefined4 *)(this + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x1c)" (( "(") (binary_expression "this + 0x1c" (identifier "this") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x20) = 0;" (assignment_expression "*(undefined4 *)(this + 0x20) = 0" (pointer_expression "*(undefined4 *)(this + 0x20)" (* "*") (cast_expression "(undefined4 *)(this + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x24) = 0;" (assignment_expression "*(undefined4 *)(this + 0x24) = 0" (pointer_expression "*(undefined4 *)(this + 0x24)" (* "*") (cast_expression "(undefined4 *)(this + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x28) = 0;" (assignment_expression "*(undefined4 *)(this + 0x28) = 0" (pointer_expression "*(undefined4 *)(this + 0x28)" (* "*") (cast_expression "(undefined4 *)(this + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "this[0x124] = (__numpunct_cache<wchar_t>)0x0;" (assignment_expression "this[0x124] = (__numpunct_cache<wchar_t>)0x0" (subscript_expression "this[0x124]" (identifier "this") ([ "[") (number_literal "0x124") (] "]")) (= "=") (parenthesized_expression "(__numpunct_cache<wchar_t>)0x0" (( "(") (binary_expression "__numpunct_cache<wchar_t>)0x0" (binary_expression "__numpunct_cache<wchar_t" (identifier "__numpunct_cache") (< "<") (identifier "wchar_t")) (> ">") (ERROR ")" () ")")) (number_literal "0x0")) () ""))) (; ";")) (labeled_statement "std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));" (statement_identifier "std") (ERROR "::__numpunct_cache<wchar_t>:" (: ":") (: ":") (binary_expression "__numpunct_cache<wchar_t" (identifier "__numpunct_cache") (< "<") (identifier "wchar_t")) (> ">") (: ":")) (: ":") (expression_statement "_M_cache(this,(locale *)(param_7 + 0x6c));" (call_expression "_M_cache(this,(locale *)(param_7 + 0x6c))" (identifier "_M_cache") (argument_list "(this,(locale *)(param_7 + 0x6c))" (( "(") (identifier "this") (, ",") (cast_expression "(locale *)(param_7 + 0x6c)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 0x6c)" (( "(") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c")) () ")"))) () ")"))) (; ";"))) (expression_statement "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004338a4)" (( "(") (pointer_expression "*(code *)PTR__M_install_cache_004338a4" (* "*") (cast_expression "(code *)PTR__M_install_cache_004338a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_install_cache_004338a4"))) () ")")) (argument_list "(*(undefined4 *)(param_7 + 0x6c),this,iVar3)" (( "(") (pointer_expression "*(undefined4 *)(param_7 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(param_7 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 0x6c)" (( "(") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c")) () ")")))) (, ",") (identifier "this") (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" (identifier "iVar11") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}"))) (expression_statement "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar16 = *(uint *)(param_7 + 0xc) & 0x4a" (identifier "uVar16") (= "=") (binary_expression "*(uint *)(param_7 + 0xc) & 0x4a" (pointer_expression "*(uint *)(param_7 + 0xc)" (* "*") (cast_expression "(uint *)(param_7 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 0xc)" (( "(") (binary_expression "param_7 + 0xc" (identifier "param_7") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0x4a"))) (; ";")) (if_statement "if (uVar16 == 0x40) {\n    uVar4 = 8;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" (if "if") (parenthesized_expression "(uVar16 == 0x40)" (( "(") (binary_expression "uVar16 == 0x40" (identifier "uVar16") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n    uVar4 = 8;\n  }" ({ "{") (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n  }" ({ "{") (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" (identifier "uVar4") (= "=") (number_literal "10")) (; ";")) (if_statement "if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }" (if "if") (parenthesized_expression "(uVar16 == 8)" (( "(") (binary_expression "uVar16 == 8" (identifier "uVar16") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      uVar4 = 0x10;\n    }" ({ "{") (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" (identifier "uVar4") (= "=") (number_literal "0x10")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" (identifier "iVar3") (= "=") (identifier "local_resc")) (; ";")) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" (( "(") (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" (( "(") (binary_expression "local_res8 != (int *)0x0" (identifier "local_res8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_resc == -1)" (( "(") (binary_expression "local_resc == -1" (identifier "local_resc") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }\n    if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }\n  }" ({ "{") (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n      iVar3 = *(int *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" (if "if") (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" (( "(") (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n      iVar3 = *(int *)local_res8[2];\n    }" ({ "{") (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)local_res8[2]" (* "*") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" (else "else") (compound_statement "{\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n    }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) {\n      local_res8 = (int *)0x0;\n    }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      local_res8 = (int *)0x0;\n    }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }\n  else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" (if "if") (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" (( "(") (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" (( "(") (binary_expression "param_5 == (int *)0x0" (identifier "param_5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(param_6 != -1)" (( "(") (binary_expression "param_6 != -1" (identifier "param_6") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;\nLAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    local_38 = 0;\n    iVar3 = 0;\n    iVar5 = 0;\n    bVar13 = false;\nLAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;\nLAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = uVar4;\n    if (cVar8 == '\0') goto LAB_0033ae38;\nLAB_0033b0e0:\n    local_68 = local_60;\n    local_64 = 0;\n    local_40 = local_68;\n                    \n    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    if (uVar17 != 0) goto LAB_0033b110;\nLAB_0033ae54:\n    local_50 = 0;\n    if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }\n    local_44 = local_48 + 0x30;\n    local_48 = (uint)(local_48 < 0xb);\n    uVar14 = 0;\nLAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;\nLAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }\nLAB_0033b528:\n    uVar16 = 0;\n    if (local_64 == 0) goto LAB_0033af24;\nLAB_0033b538:\n    uVar15 = (undefined1)iVar5;\n    local_44 = 0;\nLAB_0033b540:\n    uVar4 = local_64;\n    uVar12 = local_64 + 1;\n    uVar17 = local_60[0];\n    if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }\n    if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }\n    *(undefined1 *)((int)local_68 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_68 + uVar12) = 0;\n    local_64 = uVar12;\n    iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);\n    if (iVar3 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }\n  }" ({ "{") (if_statement "if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;" (if "if") (parenthesized_expression "((param_6 == -1) != (iVar3 == -1))" (( "(") (binary_expression "(param_6 == -1) != (iVar3 == -1)" (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (!= "!=") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_0033ad4c;" (goto "goto") (statement_identifier "LAB_0033ad4c") (; ";"))) (labeled_statement "LAB_0033b298:\n    cVar8 = *(char *)(iVar11 + 0x10);" (statement_identifier "LAB_0033b298") (: ":") (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(iVar11 + 0x10)" (* "*") (cast_expression "(char *)(iVar11 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_0033b0b4:\n    if (uVar4 == 0x10) goto LAB_0033b0c0;" (statement_identifier "LAB_0033b0b4") (: ":") (if_statement "if (uVar4 == 0x10) goto LAB_0033b0c0;" (if "if") (parenthesized_expression "(uVar4 == 0x10)" (( "(") (binary_expression "uVar4 == 0x10" (identifier "uVar4") (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0033b0c0;" (goto "goto") (statement_identifier "LAB_0033b0c0") (; ";")))) (labeled_statement "LAB_0033ae20:\n    local_60[0] = local_60[0] & 0xffffff;" (statement_identifier "LAB_0033ae20") (: ":") (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff"))) (; ";"))) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" (identifier "local_48") (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (cVar8 == '\0') goto LAB_0033ae38;" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0033ae38;" (goto "goto") (statement_identifier "LAB_0033ae38") (; ";"))) (labeled_statement "LAB_0033b0e0:\n    local_68 = local_60;" (statement_identifier "LAB_0033b0e0") (: ":") (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" (identifier "local_68") (= "=") (identifier "local_60")) (; ";"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" (identifier "local_40") (= "=") (identifier "local_68")) (; ";")) (expression_statement "(*(code *)PTR_reserve_004331f4)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004331f4)(&local_68,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004331f4)" (( "(") (pointer_expression "*(code *)PTR_reserve_004331f4" (* "*") (cast_expression "(code *)PTR_reserve_004331f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_reserve_004331f4"))) () ")")) (argument_list "(&local_68,0x20)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "0x20") () ")"))) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar11 + 0x124)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x124)" (( "(") (binary_expression "iVar11 + 0x124" (identifier "iVar11") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" (identifier "local_4c") (= "=") (binary_expression "0xffffffff / uVar4" (number_literal "0xffffffff") (/ "/") (identifier "uVar4"))) (; ";")) (if_statement "if (uVar17 != 0) goto LAB_0033b110;" (if "if") (parenthesized_expression "(uVar17 != 0)" (( "(") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033b110;" (goto "goto") (statement_identifier "LAB_0033b110") (; ";"))) (labeled_statement "LAB_0033ae54:\n    local_50 = 0;" (statement_identifier "LAB_0033ae54") (: ":") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar16 != 0) {\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = 0;\n      goto LAB_0033af18;\n    }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0033af18;" (goto "goto") (statement_identifier "LAB_0033af18") (; ";")) (} "}"))) (expression_statement "local_44 = local_48 + 0x30;" (assignment_expression "local_44 = local_48 + 0x30" (identifier "local_44") (= "=") (binary_expression "local_48 + 0x30" (identifier "local_48") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "local_48 = (uint)(local_48 < 0xb);" (assignment_expression "local_48 = (uint)(local_48 < 0xb)" (identifier "local_48") (= "=") (call_expression "(uint)(local_48 < 0xb)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_48 < 0xb)" (( "(") (binary_expression "local_48 < 0xb" (identifier "local_48") (< "<") (number_literal "0xb")) () ")")))) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0033ae78:\n    if (local_48 == 0) goto LAB_0033b3ac;" (statement_identifier "LAB_0033ae78") (: ":") (if_statement "if (local_48 == 0) goto LAB_0033b3ac;" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033b3ac;" (goto "goto") (statement_identifier "LAB_0033b3ac") (; ";")))) (labeled_statement "LAB_0033ae80:\n    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" (statement_identifier "LAB_0033ae80") (: ":") (if_statement "if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" (if "if") (parenthesized_expression "((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44))" (( "(") (binary_expression "(0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)" (parenthesized_expression "(0x2f < iVar3)" (( "(") (binary_expression "0x2f < iVar3" (number_literal "0x2f") (< "<") (identifier "iVar3")) () ")")) (&& "&&") (parenthesized_expression "(uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)" (( "(") (comma_expression "uVar16 = iVar3 - 0x30, iVar3 < (int)local_44" (assignment_expression "uVar16 = iVar3 - 0x30" (identifier "uVar16") (= "=") (binary_expression "iVar3 - 0x30" (identifier "iVar3") (- "-") (number_literal "0x30"))) (, ",") (binary_expression "iVar3 < (int)local_44" (identifier "iVar3") (< "<") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")))) () ")"))) () ")")) (compound_statement "{\nLAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;\nLAB_0033aea8:\n      local_50 = 1;\n      uVar17 = local_res8[2];\n      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;\nLAB_0033aec4:\n      local_res8[2] = uVar17 + 4;\n      piVar9 = (int *)local_res8[2];\n      do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );\n    }" ({ "{") (labeled_statement "LAB_0033ae98:\n      if (uVar14 <= local_4c) goto LAB_0033b3cc;" (statement_identifier "LAB_0033ae98") (: ":") (if_statement "if (uVar14 <= local_4c) goto LAB_0033b3cc;" (if "if") (parenthesized_expression "(uVar14 <= local_4c)" (( "(") (binary_expression "uVar14 <= local_4c" (identifier "uVar14") (<= "<=") (identifier "local_4c")) () ")")) (goto_statement "goto LAB_0033b3cc;" (goto "goto") (statement_identifier "LAB_0033b3cc") (; ";")))) (labeled_statement "LAB_0033aea8:\n      local_50 = 1;" (statement_identifier "LAB_0033aea8") (: ":") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";"))) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" (identifier "uVar17") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;" (if "if") (parenthesized_expression "((uint)local_res8[3] <= uVar17)" (( "(") (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar17")) () ")")) (goto_statement "goto LAB_0033b404;" (goto "goto") (statement_identifier "LAB_0033b404") (; ";"))) (labeled_statement "LAB_0033aec4:\n      local_res8[2] = uVar17 + 4;" (statement_identifier "LAB_0033aec4") (: ":") (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar17 + 4" (identifier "uVar17") (+ "+") (number_literal "4"))) (; ";"))) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (do_statement "do {\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      } while( true );" (do "do") (compound_statement "{\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }\n        do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);\n        piVar9 = (int *)local_res8[2];\n      }" ({ "{") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" (if "if") (parenthesized_expression "(piVar9 < (int *)local_res8[3])" (( "(") (binary_expression "piVar9 < (int *)local_res8[3]" (identifier "piVar9") (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          iVar3 = *piVar9;\n        }" ({ "{") (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" (identifier "iVar3") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}")) (else_clause "else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" (else "else") (compound_statement "{\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }\n        else {\n          bVar10 = false;\n        }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          local_res8 = (int *)0x0;\n          bVar10 = true;\n        }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" (identifier "bVar10") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n          bVar10 = false;\n        }" (else "else") (compound_statement "{\n          bVar10 = false;\n        }" ({ "{") (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (} "}")))) (do_statement "do {\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        } while (local_res8 == (int *)0x0);" (do "do") (compound_statement "{\n          if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }\n          local_resc = iVar3;\n          if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }\n          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 != -1) goto LAB_0033ae78;\n          local_res8 = (int *)0x0;\n          if (local_48 != 0) goto LAB_0033ae80;\nLAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;\n          if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }\n          if (local_4c < uVar14) goto LAB_0033aea8;\nLAB_0033b3cc:\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar17 = local_res8[2];\n          uVar14 = uVar16 + uVar4 * uVar14;\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;\nLAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();\n          bVar10 = true;\n          local_resc = -1;\n        }" ({ "{") (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }\n          else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" (if "if") (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" (( "(") (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" (( "(") (binary_expression "param_5 == (int *)0x0" (identifier "param_5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(param_6 != -1)" (( "(") (binary_expression "param_6 != -1" (identifier "param_6") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n            bVar1 = param_6 == -1;\n            iVar3 = local_resc;\n          }" ({ "{") (expression_statement "bVar1 = param_6 == -1;" (assignment_expression "bVar1 = param_6 == -1" (identifier "bVar1") (= "=") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" (identifier "iVar3") (= "=") (identifier "local_resc")) (; ";")) (} "}")) (else_clause "else {\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" (else "else") (compound_statement "{\n            if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            bVar1 = iVar3 == -1;\n            iVar3 = local_resc;\n          }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n            else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n              iVar3 = *(int *)param_5[2];\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" ({ "{") (expression_statement "iVar3 = *(int *)param_5[2];" (assignment_expression "iVar3 = *(int *)param_5[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" (else "else") (compound_statement "{\n                    \n              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n              if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" ({ "{") (expression_statement "iVar3 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar3 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n                param_5 = (int *)0x0;\n              }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                param_5 = (int *)0x0;\n              }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar1 = iVar3 == -1;" (assignment_expression "bVar1 = iVar3 == -1" (identifier "bVar1") (= "=") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" (identifier "iVar3") (= "=") (identifier "local_resc")) (; ";")) (} "}")))) (expression_statement "local_resc = iVar3;" (assignment_expression "local_resc = iVar3" (identifier "local_resc") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (bVar1 == bVar10) {\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" (if "if") (parenthesized_expression "(bVar1 == bVar10)" (( "(") (binary_expression "bVar1 == bVar10" (identifier "bVar1") (== "==") (identifier "bVar10")) () ")")) (compound_statement "{\n            uVar16 = 1;\n            goto LAB_0033af18;\n          }" ({ "{") (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0033af18;" (goto "goto") (statement_identifier "LAB_0033af18") (; ";")) (} "}"))) (if_statement "if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (iVar3 != -1))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (iVar3 != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" (( "(") (binary_expression "local_res8 == (int *)0x0" (identifier "local_res8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 != -1)" (( "(") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_0033ae78;" (goto "goto") (statement_identifier "LAB_0033ae78") (; ";"))) (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" (if "if") (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" (( "(") (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" ({ "{") (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)local_res8[2]" (* "*") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" (else "else") (compound_statement "{\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 != -1) goto LAB_0033ae78;" (if "if") (parenthesized_expression "(iVar3 != -1)" (( "(") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0033ae78;" (goto "goto") (statement_identifier "LAB_0033ae78") (; ";"))) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_48 != 0) goto LAB_0033ae80;" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033ae80;" (goto "goto") (statement_identifier "LAB_0033ae80") (; ";"))) (labeled_statement "LAB_0033b3ac:\n          uVar16 = iVar3 - 0x30;" (statement_identifier "LAB_0033b3ac") (: ":") (expression_statement "uVar16 = iVar3 - 0x30;" (assignment_expression "uVar16 = iVar3 - 0x30" (identifier "uVar16") (= "=") (binary_expression "iVar3 - 0x30" (identifier "iVar3") (- "-") (number_literal "0x30"))) (; ";"))) (if_statement "if (9 < uVar16) {\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }" (if "if") (parenthesized_expression "(9 < uVar16)" (( "(") (binary_expression "9 < uVar16" (number_literal "9") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n            if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }\n            uVar16 = iVar3 - 0x37;\n            if (5 < iVar3 - 0x41U) goto LAB_0033b528;\n            goto LAB_0033ae98;\n          }" ({ "{") (if_statement "if (iVar3 - 0x61U < 6) {\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }" (if "if") (parenthesized_expression "(iVar3 - 0x61U < 6)" (( "(") (binary_expression "iVar3 - 0x61U < 6" (binary_expression "iVar3 - 0x61U" (identifier "iVar3") (- "-") (number_literal "0x61U")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\n              uVar16 = iVar3 - 0x57;\n              goto LAB_0033ae98;\n            }" ({ "{") (expression_statement "uVar16 = iVar3 - 0x57;" (assignment_expression "uVar16 = iVar3 - 0x57" (identifier "uVar16") (= "=") (binary_expression "iVar3 - 0x57" (identifier "iVar3") (- "-") (number_literal "0x57"))) (; ";")) (goto_statement "goto LAB_0033ae98;" (goto "goto") (statement_identifier "LAB_0033ae98") (; ";")) (} "}"))) (expression_statement "uVar16 = iVar3 - 0x37;" (assignment_expression "uVar16 = iVar3 - 0x37" (identifier "uVar16") (= "=") (binary_expression "iVar3 - 0x37" (identifier "iVar3") (- "-") (number_literal "0x37"))) (; ";")) (if_statement "if (5 < iVar3 - 0x41U) goto LAB_0033b528;" (if "if") (parenthesized_expression "(5 < iVar3 - 0x41U)" (( "(") (binary_expression "5 < iVar3 - 0x41U" (number_literal "5") (< "<") (binary_expression "iVar3 - 0x41U" (identifier "iVar3") (- "-") (number_literal "0x41U"))) () ")")) (goto_statement "goto LAB_0033b528;" (goto "goto") (statement_identifier "LAB_0033b528") (; ";"))) (goto_statement "goto LAB_0033ae98;" (goto "goto") (statement_identifier "LAB_0033ae98") (; ";")) (} "}"))) (if_statement "if (local_4c < uVar14) goto LAB_0033aea8;" (if "if") (parenthesized_expression "(local_4c < uVar14)" (( "(") (binary_expression "local_4c < uVar14" (identifier "local_4c") (< "<") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_0033aea8;" (goto "goto") (statement_identifier "LAB_0033aea8") (; ";"))) (labeled_statement "LAB_0033b3cc:\n          iVar5 = iVar5 + 1;" (statement_identifier "LAB_0033b3cc") (: ":") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (identifier "local_50") (= "=") (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" (identifier "local_50") (& "&") (number_literal "0xff")) (| "|") (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(~uVar16 < uVar4 * uVar14)" (( "(") (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" (~ "~") (identifier "uVar16")) (< "<") (binary_expression "uVar4 * uVar14" (identifier "uVar4") (* "*") (identifier "uVar14"))) () ")"))))) (; ";")) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" (identifier "uVar17") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" (identifier "uVar14") (= "=") (binary_expression "uVar16 + uVar4 * uVar14" (identifier "uVar16") (+ "+") (binary_expression "uVar4 * uVar14" (identifier "uVar4") (* "*") (identifier "uVar14")))) (; ";")) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;" (if "if") (parenthesized_expression "(uVar17 < (uint)local_res8[3])" (( "(") (binary_expression "uVar17 < (uint)local_res8[3]" (identifier "uVar17") (< "<") (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (goto_statement "goto LAB_0033aec4;" (goto "goto") (statement_identifier "LAB_0033aec4") (; ";"))) (labeled_statement "LAB_0033b404:\n          (**(code **)(*local_res8 + 0x28))();" (statement_identifier "LAB_0033b404") (: ":") (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x28)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x28)" (* "*") (cast_expression "(code **)(*local_res8 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x28)" (( "(") (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" (identifier "bVar10") (= "=") (true "true")) (; ";")) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_res8 == (int *)0x0)" (( "(") (binary_expression "local_res8 == (int *)0x0" (identifier "local_res8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_0033b528:\n    uVar16 = 0;" (statement_identifier "LAB_0033b528") (: ":") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_64 == 0) goto LAB_0033af24;" (if "if") (parenthesized_expression "(local_64 == 0)" (( "(") (binary_expression "local_64 == 0" (identifier "local_64") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033af24;" (goto "goto") (statement_identifier "LAB_0033af24") (; ";"))) (labeled_statement "LAB_0033b538:\n    uVar15 = (undefined1)iVar5;" (statement_identifier "LAB_0033b538") (: ":") (expression_statement "uVar15 = (undefined1)iVar5;" (assignment_expression "uVar15 = (undefined1)iVar5" (identifier "uVar15") (= "=") (cast_expression "(undefined1)iVar5" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar5"))) (; ";"))) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0033b540:\n    uVar4 = local_64;" (statement_identifier "LAB_0033b540") (: ":") (expression_statement "uVar4 = local_64;" (assignment_expression "uVar4 = local_64" (identifier "uVar4") (= "=") (identifier "local_64")) (; ";"))) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" (identifier "uVar12") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar17 = local_60[0];" (assignment_expression "uVar17 = local_60[0]" (identifier "uVar17") (= "=") (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (local_68 == local_40) {\n      uVar17 = 0xf;\n    }" (if "if") (parenthesized_expression "(local_68 == local_40)" (( "(") (binary_expression "local_68 == local_40" (identifier "local_68") (== "==") (identifier "local_40")) () ")")) (compound_statement "{\n      uVar17 = 0xf;\n    }" ({ "{") (expression_statement "uVar17 = 0xf;" (assignment_expression "uVar17 = 0xf" (identifier "uVar17") (= "=") (number_literal "0xf")) (; ";")) (} "}"))) (if_statement "if (uVar17 < uVar12) {\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" (if "if") (parenthesized_expression "(uVar17 < uVar12)" (( "(") (binary_expression "uVar17 < uVar12" (identifier "uVar17") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);\n    }" ({ "{") (expression_statement "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" (( "(") (pointer_expression "*(code *)PTR__M_mutate_00432e00" (* "*") (cast_expression "(code *)PTR__M_mutate_00432e00" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_mutate_00432e00"))) () ")")) (argument_list "(&local_68,local_64,0,0,1)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "local_64") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)local_68 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_68 + uVar4)" (* "*") (cast_expression "(undefined1 *)((int)local_68 + uVar4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + uVar4)" (( "(") (binary_expression "(int)local_68 + uVar4" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "uVar4")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" (* "*") (cast_expression "(undefined1 *)((int)local_68 + uVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + uVar12)" (( "(") (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "uVar12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" (identifier "local_64") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);" (assignment_expression "iVar3 = (*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR___verify_grouping_00433d24)\n                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" (parenthesized_expression "(*(code *)PTR___verify_grouping_00433d24)" (( "(") (pointer_expression "*(code *)PTR___verify_grouping_00433d24" (* "*") (cast_expression "(code *)PTR___verify_grouping_00433d24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___verify_grouping_00433d24"))) () ")")) (argument_list "(*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68)" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      *param_8 = 4;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *param_8 = 4;\n    }" ({ "{") (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" (if "if") (parenthesized_expression "((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0))" (( "(") (binary_expression "(((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)" (parenthesized_expression "(((iVar5 != 0) || (bVar13)) || (local_64 != 0))" (( "(") (binary_expression "((iVar5 != 0) || (bVar13)) || (local_64 != 0)" (parenthesized_expression "((iVar5 != 0) || (bVar13))" (( "(") (binary_expression "(iVar5 != 0) || (bVar13)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_44 == 0)" (( "(") (binary_expression "local_44 == 0" (identifier "local_44") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }\n      goto LAB_0033af48;\n    }" ({ "{") (labeled_statement "LAB_0033b5b4:\n      if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" (statement_identifier "LAB_0033b5b4") (: ":") (if_statement "if (local_50 == 0) {\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }\n      else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" (if "if") (parenthesized_expression "(local_50 == 0)" (( "(") (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }\n        *param_9 = uVar14;\n      }" ({ "{") (if_statement "if (local_38 != 0) {\n          uVar14 = -uVar14;\n        }" (if "if") (parenthesized_expression "(local_38 != 0)" (( "(") (binary_expression "local_38 != 0" (identifier "local_38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar14 = -uVar14;\n        }" ({ "{") (expression_statement "uVar14 = -uVar14;" (assignment_expression "uVar14 = -uVar14" (identifier "uVar14") (= "=") (unary_expression "-uVar14" (- "-") (identifier "uVar14"))) (; ";")) (} "}"))) (expression_statement "*param_9 = uVar14;" (assignment_expression "*param_9 = uVar14" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "uVar14")) (; ";")) (} "}")) (else_clause "else {\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" (else "else") (compound_statement "{\n        *param_9 = 0xffffffff;\n        *param_8 = 4;\n      }" ({ "{") (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (} "}"))))) (goto_statement "goto LAB_0033af48;" (goto "goto") (statement_identifier "LAB_0033af48") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" (else "else") (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;\nLAB_0033ad4c:\n    iVar3 = local_resc;\n    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);\n    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }\n    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }\n    iVar5 = param_6;\n    if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }\n    cVar8 = *(char *)(iVar11 + 0x10);\n    uVar16 = 1;\n    iVar5 = 0;\n    bVar13 = false;\n    if (uVar4 != 0x10) goto LAB_0033ae20;\nLAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_48 = 0x16;\n    if (cVar8 != '\0') goto LAB_0033b0e0;\nLAB_0033ae38:\n    local_68 = local_60;\n    local_64 = 0;\n    uVar17 = (uint)*(byte *)(iVar11 + 0x124);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_4c = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (uVar17 == 0) goto LAB_0033ae54;\nLAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }\nLAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;\nLAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;\n  }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n    else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n      iVar5 = *(int *)param_5[2];\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" ({ "{") (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" (identifier "iVar5") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" (else "else") (compound_statement "{\n      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n      if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" ({ "{") (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar5 == -1) {\n        param_5 = (int *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        param_5 = (int *)0x0;\n      }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;" (if "if") (parenthesized_expression "((iVar5 == -1) == (iVar3 == -1))" (( "(") (binary_expression "(iVar5 == -1) == (iVar3 == -1)" (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (== "==") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto LAB_0033b298;" (goto "goto") (statement_identifier "LAB_0033b298") (; ";"))) (labeled_statement "LAB_0033ad4c:\n    iVar3 = local_resc;" (statement_identifier "LAB_0033ad4c") (: ":") (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" (identifier "iVar3") (= "=") (identifier "local_resc")) (; ";"))) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" (if "if") (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" (( "(") (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" (( "(") (binary_expression "local_res8 != (int *)0x0" (identifier "local_res8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_resc == -1)" (( "(") (binary_expression "local_resc == -1" (identifier "local_resc") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n      if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }\n    }" ({ "{") (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n        iVar3 = *(int *)local_res8[2];\n      }\n      else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" (if "if") (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" (( "(") (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n        iVar3 = *(int *)local_res8[2];\n      }" ({ "{") (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)local_res8[2]" (* "*") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" (else "else") (compound_statement "{\n        iVar3 = (**(code **)(*local_res8 + 0x24))();\n      }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) {\n        local_res8 = (int *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        local_res8 = (int *)0x0;\n      }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(iVar11 + 0x10)" (* "*") (cast_expression "(char *)(iVar11 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);" (assignment_expression "local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3)" (identifier "local_38") (= "=") (call_expression "(uint)(*(int *)(iVar11 + 0xbc) == iVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar11 + 0xbc) == iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0xbc) == iVar3" (pointer_expression "*(int *)(iVar11 + 0xbc)" (* "*") (cast_expression "(int *)(iVar11 + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xbc)" (( "(") (binary_expression "iVar11 + 0xbc" (identifier "iVar11") (+ "+") (number_literal "0xbc")) () ")")))) (== "==") (identifier "iVar3")) () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3))" (( "(") (binary_expression "(*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)" (parenthesized_expression "(*(int *)(iVar11 + 0xbc) != iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0xbc) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xbc)" (* "*") (cast_expression "(int *)(iVar11 + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xbc)" (( "(") (binary_expression "iVar11 + 0xbc" (identifier "iVar11") (+ "+") (number_literal "0xbc")) () ")")))) (!= "!=") (identifier "iVar3")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar11 + 0xc0) != iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc0) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xc0)" (* "*") (cast_expression "(int *)(iVar11 + 0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc0)" (( "(") (binary_expression "iVar11 + 0xc0" (identifier "iVar11") (+ "+") (number_literal "0xc0")) () ")")))) (!= "!=") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n      local_38 = 0;\nLAB_0033afc8:\n      iVar5 = 0;\n      bVar13 = false;\n      do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);\n      uVar16 = 0;\n      goto LAB_0033b0b4;\n    }" ({ "{") (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0033afc8:\n      iVar5 = 0;" (statement_identifier "LAB_0033afc8") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";"))) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (do_statement "do {\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      } while (bVar13);" (do "do") (compound_statement "{\n        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }\n        if (*(int *)(iVar11 + 0x24) == iVar3) break;\n        if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }\n        if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        cVar8 = *(char *)(iVar11 + 0x10);\n      }" ({ "{") (if_statement "if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }" (if "if") (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3))" (( "(") (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)" (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar11 + 0x28) == iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0x28) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" (* "*") (cast_expression "(int *)(iVar11 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n          if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }\n          local_60[0] = local_60[0] & 0xffffff;\n          uVar16 = 0;\n          local_48 = 0x16;\n          goto LAB_0033b0e0;\n        }" ({ "{") (if_statement "if (uVar4 != 0x10) {\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }" (if "if") (parenthesized_expression "(uVar4 != 0x10)" (( "(") (binary_expression "uVar4 != 0x10" (identifier "uVar4") (!= "!=") (number_literal "0x10")) () ")")) (compound_statement "{\n            uVar16 = 0;\n            goto LAB_0033ae20;\n          }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0033ae20;" (goto "goto") (statement_identifier "LAB_0033ae20") (; ";")) (} "}"))) (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff"))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" (identifier "local_48") (= "=") (number_literal "0x16")) (; ";")) (goto_statement "goto LAB_0033b0e0;" (goto "goto") (statement_identifier "LAB_0033b0e0") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar11 + 0x24) == iVar3) break;" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 0x24) == iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0x24) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x24)" (* "*") (cast_expression "(int *)(iVar11 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (identifier "iVar3")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(int *)(iVar11 + 0xcc) == iVar3) {\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }\n        else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 0xcc) == iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0xcc) == iVar3" (pointer_expression "*(int *)(iVar11 + 0xcc)" (* "*") (cast_expression "(int *)(iVar11 + 0xcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xcc)" (( "(") (binary_expression "iVar11 + 0xcc" (identifier "iVar11") (+ "+") (number_literal "0xcc")) () ")")))) (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\n          if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }\nLAB_0033b038:\n          uVar17 = local_res8[2];\n          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;\nLAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar17 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }\n        }" ({ "{") (if_statement "if (bVar13) {\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }\n          else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n            if (uVar4 != 10) goto LAB_0033b008;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }\n          }" ({ "{") (if_statement "if (uVar4 != 10) goto LAB_0033b008;" (if "if") (parenthesized_expression "(uVar4 != 10)" (( "(") (binary_expression "uVar4 != 10" (identifier "uVar4") (!= "!=") (number_literal "10")) () ")")) (goto_statement "goto LAB_0033b008;" (goto "goto") (statement_identifier "LAB_0033b008") (; ";"))) (if_statement "if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar5 = 0;\n              uVar4 = 8;\n            }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" (else "else") (compound_statement "{\nLAB_0033b4b4:\n              iVar5 = iVar5 + 1;\n              bVar13 = true;\n            }" ({ "{") (labeled_statement "LAB_0033b4b4:\n              iVar5 = iVar5 + 1;" (statement_identifier "LAB_0033b4b4") (: ":") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" (else "else") (compound_statement "{\n            bVar13 = true;\n            if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }\n          }" ({ "{") (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (if_statement "if (uVar16 == 0) {\n              iVar5 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar5 = 0;\n              uVar4 = 8;\n            }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" (else "else") (compound_statement "{\n              if (uVar4 != 8) goto LAB_0033b4b4;\n              iVar5 = 0;\n              bVar13 = true;\n            }" ({ "{") (if_statement "if (uVar4 != 8) goto LAB_0033b4b4;" (if "if") (parenthesized_expression "(uVar4 != 8)" (( "(") (binary_expression "uVar4 != 8" (identifier "uVar4") (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_0033b4b4;" (goto "goto") (statement_identifier "LAB_0033b4b4") (; ";"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0033b038:\n          uVar17 = local_res8[2];" (statement_identifier "LAB_0033b038") (: ":") (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" (identifier "uVar17") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;" (if "if") (parenthesized_expression "(uVar17 < (uint)local_res8[3])" (( "(") (binary_expression "uVar17 < (uint)local_res8[3]" (identifier "uVar17") (< "<") (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (goto_statement "goto LAB_0033b050;" (goto "goto") (statement_identifier "LAB_0033b050") (; ";"))) (labeled_statement "LAB_0033b44c:\n          (**(code **)(*local_res8 + 0x28))();" (statement_identifier "LAB_0033b44c") (: ":") (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x28)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x28)" (* "*") (cast_expression "(code **)(*local_res8 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x28)" (( "(") (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) {\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" (if "if") (parenthesized_expression "(local_res8 != (int *)0x0)" (( "(") (binary_expression "local_res8 != (int *)0x0" (identifier "local_res8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            piVar9 = (int *)local_res8[2];\n            goto LAB_0033b064;\n          }" ({ "{") (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto LAB_0033b064;" (goto "goto") (statement_identifier "LAB_0033b064") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" (else "else") (compound_statement "{\n          if (!bVar13) break;\nLAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }\n          if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }\n          iVar5 = 0;\n          bVar13 = false;\n          uVar17 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;\nLAB_0033b050:\n          local_res8[2] = uVar17 + 4;\n          piVar9 = (int *)local_res8[2];\nLAB_0033b064:\n          local_resc = -1;\n          if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }\n        }" ({ "{") (if_statement "if (!bVar13) break;" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0033b008:\n          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" (statement_identifier "LAB_0033b008") (: ":") (if_statement "if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" (if "if") (parenthesized_expression "((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3))" (( "(") (binary_expression "(*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)" (parenthesized_expression "(*(int *)(iVar11 + 0xc4) != iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc4) != iVar3" (pointer_expression "*(int *)(iVar11 + 0xc4)" (* "*") (cast_expression "(int *)(iVar11 + 0xc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc4)" (( "(") (binary_expression "iVar11 + 0xc4" (identifier "iVar11") (+ "+") (number_literal "0xc4")) () ")")))) (!= "!=") (identifier "iVar3")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar11 + 200) != iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 200) != iVar3" (pointer_expression "*(int *)(iVar11 + 200)" (* "*") (cast_expression "(int *)(iVar11 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 200)" (( "(") (binary_expression "iVar11 + 200" (identifier "iVar11") (+ "+") (number_literal "200")) () ")")))) (!= "!=") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033b0b4;\n          }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0033b0b4;" (goto "goto") (statement_identifier "LAB_0033b0b4") (; ";")) (} "}")))) (if_statement "if (uVar16 != 0) {\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }\n            uVar16 = 0;\n            bVar13 = true;\n            goto LAB_0033ae20;\n          }" ({ "{") (if_statement "if (uVar4 == 0x10) {\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" (if "if") (parenthesized_expression "(uVar4 == 0x10)" (( "(") (binary_expression "uVar4 == 0x10" (identifier "uVar4") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n              iVar5 = 0;\n              bVar13 = false;\n              goto LAB_0033b038;\n            }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_0033b038;" (goto "goto") (statement_identifier "LAB_0033b038") (; ";")) (} "}"))) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0033ae20;" (goto "goto") (statement_identifier "LAB_0033ae20") (; ";")) (} "}"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "uVar17 = local_res8[2];" (assignment_expression "uVar17 = local_res8[2]" (identifier "uVar17") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" (identifier "uVar4") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;" (if "if") (parenthesized_expression "((uint)local_res8[3] <= uVar17)" (( "(") (binary_expression "(uint)local_res8[3] <= uVar17" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar17")) () ")")) (goto_statement "goto LAB_0033b44c;" (goto "goto") (statement_identifier "LAB_0033b44c") (; ";"))) (labeled_statement "LAB_0033b050:\n          local_res8[2] = uVar17 + 4;" (statement_identifier "LAB_0033b050") (: ":") (expression_statement "local_res8[2] = uVar17 + 4;" (assignment_expression "local_res8[2] = uVar17 + 4" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar17 + 4" (identifier "uVar17") (+ "+") (number_literal "4"))) (; ";"))) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (labeled_statement "LAB_0033b064:\n          local_resc = -1;" (statement_identifier "LAB_0033b064") (: ":") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";"))) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n            iVar6 = *piVar9;\n          }\n          else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" (if "if") (parenthesized_expression "(piVar9 < (int *)local_res8[3])" (( "(") (binary_expression "piVar9 < (int *)local_res8[3]" (identifier "piVar9") (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar6 = *piVar9;\n          }" ({ "{") (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" (identifier "iVar6") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" (else "else") (compound_statement "{\n            iVar6 = (**(code **)(*local_res8 + 0x24))();\n          }" ({ "{") (expression_statement "iVar6 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar6 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar6 == -1) {\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }\n          else {\n            uVar17 = 0;\n          }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar17 = 1;\n          }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            uVar17 = 0;\n          }" (else "else") (compound_statement "{\n            uVar17 = 0;\n          }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (if_statement "if ((param_5 == (int *)0x0) || (param_6 != -1)) {\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }\n        else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" (if "if") (parenthesized_expression "((param_5 == (int *)0x0) || (param_6 != -1))" (( "(") (binary_expression "(param_5 == (int *)0x0) || (param_6 != -1)" (parenthesized_expression "(param_5 == (int *)0x0)" (( "(") (binary_expression "param_5 == (int *)0x0" (identifier "param_5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(param_6 != -1)" (( "(") (binary_expression "param_6 != -1" (identifier "param_6") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;\n        }" ({ "{") (if_statement "if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;" (if "if") (parenthesized_expression "((param_6 == -1) == uVar17)" (( "(") (binary_expression "(param_6 == -1) == uVar17" (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (== "==") (identifier "uVar17")) () ")")) (goto_statement "goto LAB_0033b0ac;" (goto "goto") (statement_identifier "LAB_0033b0ac") (; ";"))) (} "}")) (else_clause "else {\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" (else "else") (compound_statement "{\n          if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }\n        }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n          else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar6 = *(int *)param_5[2];\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" ({ "{") (expression_statement "iVar6 = *(int *)param_5[2];" (assignment_expression "iVar6 = *(int *)param_5[2]" (identifier "iVar6") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" (else "else") (compound_statement "{\n            local_50 = uVar17;\n            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = local_50;\n            if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" ({ "{") (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" (identifier "local_50") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "iVar6 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar6 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (expression_statement "uVar17 = local_50;" (assignment_expression "uVar17 = local_50" (identifier "uVar17") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (iVar6 == -1) {\n              param_5 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              param_5 = (int *)0x0;\n            }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((iVar6 == -1) == uVar17) {\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" (if "if") (parenthesized_expression "((iVar6 == -1) == uVar17)" (( "(") (binary_expression "(iVar6 == -1) == uVar17" (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (== "==") (identifier "uVar17")) () ")")) (compound_statement "{\nLAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);\n            uVar16 = 1;\n            goto LAB_0033b0b4;\n          }" ({ "{") (labeled_statement "LAB_0033b0ac:\n            cVar8 = *(char *)(iVar11 + 0x10);" (statement_identifier "LAB_0033b0ac") (: ":") (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(iVar11 + 0x10)" (* "*") (cast_expression "(char *)(iVar11 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0033b0b4;" (goto "goto") (statement_identifier "LAB_0033b0b4") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" (identifier "iVar3") (= "=") (identifier "local_resc")) (; ";")) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" (if "if") (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" (( "(") (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" (( "(") (binary_expression "local_res8 != (int *)0x0" (identifier "local_res8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_resc == -1)" (( "(") (binary_expression "local_resc == -1" (identifier "local_resc") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" ({ "{") (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" (if "if") (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" (( "(") (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" ({ "{") (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)local_res8[2]" (* "*") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" (else "else") (compound_statement "{\n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(iVar11 + 0x10)" (* "*") (cast_expression "(char *)(iVar11 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0033b0b4;" (goto "goto") (statement_identifier "LAB_0033b0b4") (; ";")) (} "}"))) (if_statement "if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;" (if "if") (parenthesized_expression "(((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3))" (( "(") (binary_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||\n       (*(int *)(iVar11 + 0x24) == iVar3)" (parenthesized_expression "((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3))" (( "(") (binary_expression "(cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)" (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar11 + 0x28) == iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0x28) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" (* "*") (cast_expression "(int *)(iVar11 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (identifier "iVar3")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar11 + 0x24) == iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0x24) == iVar3" (pointer_expression "*(int *)(iVar11 + 0x24)" (* "*") (cast_expression "(int *)(iVar11 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (identifier "iVar3")) () ")"))) () ")")) (goto_statement "goto LAB_0033afc8;" (goto "goto") (statement_identifier "LAB_0033afc8") (; ";"))) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }\n    else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" (if "if") (parenthesized_expression "((uint)local_res8[2] < (uint)local_res8[3])" (( "(") (binary_expression "(uint)local_res8[2] < (uint)local_res8[3]" (cast_expression "(uint)local_res8[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n      local_res8[2] = local_res8[2] + 4;\n      piVar9 = (int *)local_res8[2];\nLAB_0033adc0:\n      local_resc = -1;\n      if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }\n      if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }\n    }" ({ "{") (expression_statement "local_res8[2] = local_res8[2] + 4;" (assignment_expression "local_res8[2] = local_res8[2] + 4" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_res8[2] + 4" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (labeled_statement "LAB_0033adc0:\n      local_resc = -1;" (statement_identifier "LAB_0033adc0") (: ":") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";"))) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n        iVar5 = *piVar9;\n      }\n      else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" (if "if") (parenthesized_expression "(piVar9 < (int *)local_res8[3])" (( "(") (binary_expression "piVar9 < (int *)local_res8[3]" (identifier "piVar9") (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n        iVar5 = *piVar9;\n      }" ({ "{") (expression_statement "iVar5 = *piVar9;" (assignment_expression "iVar5 = *piVar9" (identifier "iVar5") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" (else "else") (compound_statement "{\n        iVar5 = (**(code **)(*local_res8 + 0x24))();\n      }" ({ "{") (expression_statement "iVar5 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar5 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar5 == -1) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n      else {\n        bVar13 = false;\n      }" (if "if") (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n        bVar13 = false;\n      }" (else "else") (compound_statement "{\n        bVar13 = false;\n      }" ({ "{") (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" (else "else") (compound_statement "{\n      bVar13 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }\n    }" ({ "{") (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x28)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x28)" (* "*") (cast_expression "(code **)(*local_res8 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x28)" (( "(") (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) {\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" (if "if") (parenthesized_expression "(local_res8 != (int *)0x0)" (( "(") (binary_expression "local_res8 != (int *)0x0" (identifier "local_res8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar9 = (int *)local_res8[2];\n        goto LAB_0033adc0;\n      }" ({ "{") (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto LAB_0033adc0;" (goto "goto") (statement_identifier "LAB_0033adc0") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar5 = param_6;" (assignment_expression "iVar5 = param_6" (identifier "iVar5") (= "=") (identifier "param_6")) (; ";")) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" (if "if") (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" (( "(") (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n      if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n      else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n        iVar5 = *(int *)param_5[2];\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" ({ "{") (expression_statement "iVar5 = *(int *)param_5[2];" (assignment_expression "iVar5 = *(int *)param_5[2]" (identifier "iVar5") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }" (if "if") (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" (else "else") (compound_statement "{\n        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);\n        if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" ({ "{") (expression_statement "iVar5 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar5 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar5 == -1) {\n          param_5 = (int *)0x0;\n        }" (if "if") (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          param_5 = (int *)0x0;\n        }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if ((iVar5 == -1) != bVar13) {\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" (if "if") (parenthesized_expression "((iVar5 == -1) != bVar13)" (( "(") (binary_expression "(iVar5 == -1) != bVar13" (parenthesized_expression "(iVar5 == -1)" (( "(") (binary_expression "iVar5 == -1" (identifier "iVar5") (== "==") (number_literal "-1")) () ")")) (!= "!=") (identifier "bVar13")) () ")")) (compound_statement "{\n      iVar3 = FUN_003348d8(&local_res8,local_resc);\n      cVar8 = *(char *)(iVar11 + 0x10);\n      goto LAB_0033afc8;\n    }" ({ "{") (expression_statement "iVar3 = FUN_003348d8(&local_res8,local_resc);" (assignment_expression "iVar3 = FUN_003348d8(&local_res8,local_resc)" (identifier "iVar3") (= "=") (call_expression "FUN_003348d8(&local_res8,local_resc)" (identifier "FUN_003348d8") (argument_list "(&local_res8,local_resc)" (( "(") (pointer_expression "&local_res8" (& "&") (identifier "local_res8")) (, ",") (identifier "local_resc") () ")")))) (; ";")) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(iVar11 + 0x10)" (* "*") (cast_expression "(char *)(iVar11 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_0033afc8;" (goto "goto") (statement_identifier "LAB_0033afc8") (; ";")) (} "}"))) (expression_statement "cVar8 = *(char *)(iVar11 + 0x10);" (assignment_expression "cVar8 = *(char *)(iVar11 + 0x10)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(iVar11 + 0x10)" (* "*") (cast_expression "(char *)(iVar11 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (if_statement "if (uVar4 != 0x10) goto LAB_0033ae20;" (if "if") (parenthesized_expression "(uVar4 != 0x10)" (( "(") (binary_expression "uVar4 != 0x10" (identifier "uVar4") (!= "!=") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0033ae20;" (goto "goto") (statement_identifier "LAB_0033ae20") (; ";"))) (labeled_statement "LAB_0033b0c0:\n    local_60[0] = local_60[0] & 0xffffff;" (statement_identifier "LAB_0033b0c0") (: ":") (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff"))) (; ";"))) (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" (identifier "local_48") (= "=") (number_literal "0x16")) (; ";")) (if_statement "if (cVar8 != '\0') goto LAB_0033b0e0;" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0033b0e0;" (goto "goto") (statement_identifier "LAB_0033b0e0") (; ";"))) (labeled_statement "LAB_0033ae38:\n    local_68 = local_60;" (statement_identifier "LAB_0033ae38") (: ":") (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" (identifier "local_68") (= "=") (identifier "local_60")) (; ";"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(iVar11 + 0x124);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar11 + 0x124)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(iVar11 + 0x124)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar11 + 0x124)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x124)" (( "(") (binary_expression "iVar11 + 0x124" (identifier "iVar11") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "local_4c = 0xffffffff / uVar4;" (assignment_expression "local_4c = 0xffffffff / uVar4" (identifier "local_4c") (= "=") (binary_expression "0xffffffff / uVar4" (number_literal "0xffffffff") (/ "/") (identifier "uVar4"))) (; ";")) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" (identifier "local_40") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (uVar17 == 0) goto LAB_0033ae54;" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033ae54;" (goto "goto") (statement_identifier "LAB_0033ae54") (; ";"))) (labeled_statement "LAB_0033b110:\n    if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" (statement_identifier "LAB_0033b110") (: ":") (if_statement "if (uVar16 == 0) {\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }\n    else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_50 = 0;\n      local_34 = &local_68;\n      uVar14 = 0;\n      local_3c = iVar11 + 0xcc;\nLAB_0033b128:\n      iVar6 = local_3c;\n      uVar16 = local_64;\n      local_44 = (uint)*(byte *)(iVar11 + 0x10);\n      uVar12 = uVar17;\n      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }\n      iVar3 = param_6;\n      if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }\n      uVar16 = uVar17;\n      if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }\n    }" ({ "{") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = &local_68;" (assignment_expression "local_34 = &local_68" (identifier "local_34") (= "=") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = iVar11 + 0xcc;" (assignment_expression "local_3c = iVar11 + 0xcc" (identifier "local_3c") (= "=") (binary_expression "iVar11 + 0xcc" (identifier "iVar11") (+ "+") (number_literal "0xcc"))) (; ";")) (labeled_statement "LAB_0033b128:\n      iVar6 = local_3c;" (statement_identifier "LAB_0033b128") (: ":") (expression_statement "iVar6 = local_3c;" (assignment_expression "iVar6 = local_3c" (identifier "iVar6") (= "=") (identifier "local_3c")) (; ";"))) (expression_statement "uVar16 = local_64;" (assignment_expression "uVar16 = local_64" (identifier "uVar16") (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_44 = (uint)*(byte *)(iVar11 + 0x10);" (assignment_expression "local_44 = (uint)*(byte *)(iVar11 + 0x10)" (identifier "local_44") (= "=") (binary_expression "(uint)*(byte *)(iVar11 + 0x10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar11 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" (identifier "uVar12") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" (if "if") (parenthesized_expression "((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3))" (( "(") (binary_expression "(local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)" (parenthesized_expression "(local_44 == 0)" (( "(") (binary_expression "local_44 == 0" (identifier "local_44") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar11 + 0x28) != iVar3)" (( "(") (binary_expression "*(int *)(iVar11 + 0x28) != iVar3" (pointer_expression "*(int *)(iVar11 + 0x28)" (* "*") (cast_expression "(int *)(iVar11 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;\n        uVar16 = iVar3 - iVar6 >> 2;\n        if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }\n        if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }\n        uVar16 = local_res8[2];\n        local_50 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;\nLAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;\n        piVar9 = (int *)local_res8[2];\nLAB_0033b1d8:\n        local_resc = -1;\n        if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }\n        if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" ({ "{") (if_statement "if ((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))\n        goto LAB_0033b528;" (if "if") (parenthesized_expression "((iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))" (( "(") (binary_expression "(iVar3 == *(int *)(iVar11 + 0x24)) ||\n           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0)" (parenthesized_expression "(iVar3 == *(int *)(iVar11 + 0x24))" (( "(") (binary_expression "iVar3 == *(int *)(iVar11 + 0x24)" (identifier "iVar3") (== "==") (pointer_expression "*(int *)(iVar11 + 0x24)" (* "*") (cast_expression "(int *)(iVar11 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0)" (( "(") (comma_expression "iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48)" (parenthesized_expression "(*(code *)PTR_wmemchr_004368f4)" (( "(") (pointer_expression "*(code *)PTR_wmemchr_004368f4" (* "*") (cast_expression "(code *)PTR_wmemchr_004368f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_wmemchr_004368f4"))) () ")")) (argument_list "(local_3c,iVar3,local_48)" (( "(") (identifier "local_3c") (, ",") (identifier "iVar3") (, ",") (identifier "local_48") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0033b528;" (goto "goto") (statement_identifier "LAB_0033b528") (; ";"))) (expression_statement "uVar16 = iVar3 - iVar6 >> 2;" (assignment_expression "uVar16 = iVar3 - iVar6 >> 2" (identifier "uVar16") (= "=") (binary_expression "iVar3 - iVar6 >> 2" (binary_expression "iVar3 - iVar6" (identifier "iVar3") (- "-") (identifier "iVar6")) (>> ">>") (number_literal "2"))) (; ";")) (if_statement "if (0x3c < iVar3 - iVar6) {\n          uVar16 = uVar16 - 6;\n        }" (if "if") (parenthesized_expression "(0x3c < iVar3 - iVar6)" (( "(") (binary_expression "0x3c < iVar3 - iVar6" (number_literal "0x3c") (< "<") (binary_expression "iVar3 - iVar6" (identifier "iVar3") (- "-") (identifier "iVar6"))) () ")")) (compound_statement "{\n          uVar16 = uVar16 - 6;\n        }" ({ "{") (expression_statement "uVar16 = uVar16 - 6;" (assignment_expression "uVar16 = uVar16 - 6" (identifier "uVar16") (= "=") (binary_expression "uVar16 - 6" (identifier "uVar16") (- "-") (number_literal "6"))) (; ";")) (} "}"))) (if_statement "if (uVar14 <= local_4c) {\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" (if "if") (parenthesized_expression "(uVar14 <= local_4c)" (( "(") (binary_expression "uVar14 <= local_4c" (identifier "uVar14") (<= "<=") (identifier "local_4c")) () ")")) (compound_statement "{\n          iVar5 = iVar5 + 1;\n          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);\n          uVar14 = uVar16 + uVar4 * uVar14;\n          goto LAB_0033b1b0;\n        }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);" (assignment_expression "local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (identifier "local_50") (= "=") (binary_expression "local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14)" (binary_expression "local_50 & 0xff" (identifier "local_50") (& "&") (number_literal "0xff")) (| "|") (call_expression "(uint)(~uVar16 < uVar4 * uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(~uVar16 < uVar4 * uVar14)" (( "(") (binary_expression "~uVar16 < uVar4 * uVar14" (unary_expression "~uVar16" (~ "~") (identifier "uVar16")) (< "<") (binary_expression "uVar4 * uVar14" (identifier "uVar4") (* "*") (identifier "uVar14"))) () ")"))))) (; ";")) (expression_statement "uVar14 = uVar16 + uVar4 * uVar14;" (assignment_expression "uVar14 = uVar16 + uVar4 * uVar14" (identifier "uVar14") (= "=") (binary_expression "uVar16 + uVar4 * uVar14" (identifier "uVar16") (+ "+") (binary_expression "uVar4 * uVar14" (identifier "uVar4") (* "*") (identifier "uVar14")))) (; ";")) (goto_statement "goto LAB_0033b1b0;" (goto "goto") (statement_identifier "LAB_0033b1b0") (; ";")) (} "}"))) (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" (identifier "uVar16") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_50 = uVar17;" (assignment_expression "local_50 = uVar17" (identifier "local_50") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;" (if "if") (parenthesized_expression "((uint)local_res8[3] <= uVar16)" (( "(") (binary_expression "(uint)local_res8[3] <= uVar16" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar16")) () ")")) (goto_statement "goto LAB_0033b620;" (goto "goto") (statement_identifier "LAB_0033b620") (; ";"))) (labeled_statement "LAB_0033b1c8:\n        local_res8[2] = uVar16 + 4;" (statement_identifier "LAB_0033b1c8") (: ":") (expression_statement "local_res8[2] = uVar16 + 4;" (assignment_expression "local_res8[2] = uVar16 + 4" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar16 + 4" (identifier "uVar16") (+ "+") (number_literal "4"))) (; ";"))) (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (labeled_statement "LAB_0033b1d8:\n        local_resc = -1;" (statement_identifier "LAB_0033b1d8") (: ":") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";"))) (if_statement "if (piVar9 < (int *)local_res8[3]) {\n          iVar3 = *piVar9;\n        }\n        else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" (if "if") (parenthesized_expression "(piVar9 < (int *)local_res8[3])" (( "(") (binary_expression "piVar9 < (int *)local_res8[3]" (identifier "piVar9") (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          iVar3 = *piVar9;\n        }" ({ "{") (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" (identifier "iVar3") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}")) (else_clause "else {\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" (else "else") (compound_statement "{\n          iVar3 = (**(code **)(*local_res8 + 0x24))();\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) {\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar12 = 0;\n        }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          local_res8 = (int *)0x0;\n        }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          uVar12 = 0;\n        }" (else "else") (compound_statement "{\n          uVar12 = 0;\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" (else "else") (compound_statement "{\n        if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }\n        local_44 = (uint)(char)iVar5;\n        local_30 = local_64 + 1;\n        uVar7 = 0xf;\n        if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }\n        if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar5 = 0;\n        *(char *)((int)local_68 + uVar16) = (char)local_44;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_0033b1b0:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;\nLAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }\n      }" ({ "{") (if_statement "if (iVar5 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_0033b540;\n        }" ({ "{") (if_statement "if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }" (if "if") (parenthesized_expression "(local_64 == 0)" (( "(") (binary_expression "local_64 == 0" (identifier "local_64") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_0033af60;\n          }" ({ "{") (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0033af60;" (goto "goto") (statement_identifier "LAB_0033af60") (; ";")) (} "}"))) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0033b540;" (goto "goto") (statement_identifier "LAB_0033b540") (; ";")) (} "}"))) (expression_statement "local_44 = (uint)(char)iVar5;" (assignment_expression "local_44 = (uint)(char)iVar5" (identifier "local_44") (= "=") (cast_expression "(uint)(char)iVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)iVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar5")))) (; ";")) (expression_statement "local_30 = local_64 + 1;" (assignment_expression "local_30 = local_64 + 1" (identifier "local_30") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = 0xf;" (assignment_expression "uVar7 = 0xf" (identifier "uVar7") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (local_68 != local_40) {\n          uVar7 = local_60[0];\n        }" (if "if") (parenthesized_expression "(local_68 != local_40)" (( "(") (binary_expression "local_68 != local_40" (identifier "local_68") (!= "!=") (identifier "local_40")) () ")")) (compound_statement "{\n          uVar7 = local_60[0];\n        }" ({ "{") (expression_statement "uVar7 = local_60[0];" (assignment_expression "uVar7 = local_60[0]" (identifier "uVar7") (= "=") (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar7 < local_64 + 1) {\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" (if "if") (parenthesized_expression "(uVar7 < local_64 + 1)" (( "(") (binary_expression "uVar7 < local_64 + 1" (identifier "uVar7") (< "<") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n                    \n          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);\n        }" ({ "{") (expression_statement "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_00432e00)" (( "(") (pointer_expression "*(code *)PTR__M_mutate_00432e00" (* "*") (cast_expression "(code *)PTR__M_mutate_00432e00" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_mutate_00432e00"))) () ")")) (argument_list "(local_34,local_64,0,0,1)" (( "(") (identifier "local_34") (, ",") (identifier "local_64") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" (identifier "local_64") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char *)((int)local_68 + uVar16) = (char)local_44;" (assignment_expression "*(char *)((int)local_68 + uVar16) = (char)local_44" (pointer_expression "*(char *)((int)local_68 + uVar16)" (* "*") (cast_expression "(char *)((int)local_68 + uVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + uVar16)" (( "(") (binary_expression "(int)local_68 + uVar16" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "uVar16")) () ")")))) (= "=") (cast_expression "(char)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_44"))) (; ";")) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" (* "*") (cast_expression "(undefined1 *)((int)local_68 + local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + local_30)" (( "(") (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "local_30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0033b1b0:\n        uVar16 = local_res8[2];" (statement_identifier "LAB_0033b1b0") (: ":") (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" (identifier "uVar16") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;" (if "if") (parenthesized_expression "(uVar16 < (uint)local_res8[3])" (( "(") (binary_expression "uVar16 < (uint)local_res8[3]" (identifier "uVar16") (< "<") (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (goto_statement "goto LAB_0033b1c8;" (goto "goto") (statement_identifier "LAB_0033b1c8") (; ";"))) (labeled_statement "LAB_0033b620:\n                    \n        (**(code **)(*local_res8 + 0x28))();" (statement_identifier "LAB_0033b620") (: ":") (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x28)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x28)" (* "*") (cast_expression "(code **)(*local_res8 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x28)" (( "(") (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) {\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" (if "if") (parenthesized_expression "(local_res8 != (int *)0x0)" (( "(") (binary_expression "local_res8 != (int *)0x0" (identifier "local_res8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar9 = (int *)local_res8[2];\n          goto LAB_0033b1d8;\n        }" ({ "{") (expression_statement "piVar9 = (int *)local_res8[2];" (assignment_expression "piVar9 = (int *)local_res8[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto LAB_0033b1d8;" (goto "goto") (statement_identifier "LAB_0033b1d8") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar3 = param_6;" (assignment_expression "iVar3 = param_6" (identifier "iVar3") (= "=") (identifier "param_6")) (; ";")) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" (( "(") (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n      }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }\n        else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          iVar3 = *(int *)param_5[2];\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" ({ "{") (expression_statement "iVar3 = *(int *)param_5[2];" (assignment_expression "iVar3 = *(int *)param_5[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n          if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar3 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))(param_5)" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n            param_5 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            param_5 = (int *)0x0;\n          }" ({ "{") (expression_statement "param_5 = (int *)0x0;" (assignment_expression "param_5 = (int *)0x0" (identifier "param_5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" (identifier "uVar16") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if ((iVar3 == -1) != uVar12) {\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" (if "if") (parenthesized_expression "((iVar3 == -1) != uVar12)" (( "(") (binary_expression "(iVar3 == -1) != uVar12" (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (!= "!=") (identifier "uVar12")) () ")")) (compound_statement "{\n        iVar3 = local_resc;\n        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }\n        goto LAB_0033b128;\n      }" ({ "{") (expression_statement "iVar3 = local_resc;" (assignment_expression "iVar3 = local_resc" (identifier "iVar3") (= "=") (identifier "local_resc")) (; ";")) (if_statement "if ((local_res8 != (int *)0x0) && (local_resc == -1)) {\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" (if "if") (parenthesized_expression "((local_res8 != (int *)0x0) && (local_resc == -1))" (( "(") (binary_expression "(local_res8 != (int *)0x0) && (local_resc == -1)" (parenthesized_expression "(local_res8 != (int *)0x0)" (( "(") (binary_expression "local_res8 != (int *)0x0" (identifier "local_res8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_resc == -1)" (( "(") (binary_expression "local_resc == -1" (identifier "local_resc") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }\n          if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }\n        }" ({ "{") (if_statement "if ((int *)local_res8[2] < (int *)local_res8[3]) {\n            iVar3 = *(int *)local_res8[2];\n          }\n          else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" (if "if") (parenthesized_expression "((int *)local_res8[2] < (int *)local_res8[3])" (( "(") (binary_expression "(int *)local_res8[2] < (int *)local_res8[3]" (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_res8[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            iVar3 = *(int *)local_res8[2];\n          }" ({ "{") (expression_statement "iVar3 = *(int *)local_res8[2];" (assignment_expression "iVar3 = *(int *)local_res8[2]" (identifier "iVar3") (= "=") (pointer_expression "*(int *)local_res8[2]" (* "*") (cast_expression "(int *)local_res8[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" (else "else") (compound_statement "{\n                    \n            iVar3 = (**(code **)(*local_res8 + 0x24))();\n          }" ({ "{") (expression_statement "iVar3 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar3 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*local_res8 + 0x24))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x24)" (* "*") (cast_expression "(code **)(*local_res8 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x24)" (( "(") (binary_expression "*local_res8 + 0x24" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 == -1) {\n            local_res8 = (int *)0x0;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_res8 = (int *)0x0;\n          }" ({ "{") (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0033b128;" (goto "goto") (statement_identifier "LAB_0033b128") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      local_50 = 0;\n      uVar14 = 0;\n    }" (else "else") (compound_statement "{\n      local_50 = 0;\n      uVar14 = 0;\n    }" ({ "{") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (} "}"))))) (labeled_statement "LAB_0033af18:\n    if (local_64 != 0) goto LAB_0033b538;" (statement_identifier "LAB_0033af18") (: ":") (if_statement "if (local_64 != 0) goto LAB_0033b538;" (if "if") (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033b538;" (goto "goto") (statement_identifier "LAB_0033b538") (; ";")))) (labeled_statement "LAB_0033af24:\n    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;" (statement_identifier "LAB_0033af24") (: ":") (if_statement "if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;" (if "if") (parenthesized_expression "((iVar5 != 0) || (bVar13))" (( "(") (binary_expression "(iVar5 != 0) || (bVar13)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")"))) () ")")) (goto_statement "goto LAB_0033b5b4;" (goto "goto") (statement_identifier "LAB_0033b5b4") (; ";")))) (} "}")))) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_0033af48:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" (statement_identifier "LAB_0033af48") (: ":") (if_statement "if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" ({ "{") (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (binary_expression "*param_8 | 2" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (| "|") (number_literal "2"))) (; ";")) (} "}")))) (labeled_statement "LAB_0033af60:\n  *param_1 = (int)local_res8;" (statement_identifier "LAB_0033af60") (: ":") (expression_statement "*param_1 = (int)local_res8;" (assignment_expression "*param_1 = (int)local_res8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)local_res8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_res8"))) (; ";"))) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_resc")) (; ";")) (if_statement "if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" (if "if") (parenthesized_expression "(local_68 != local_40)" (( "(") (binary_expression "local_68 != local_40" (identifier "local_68") (!= "!=") (identifier "local_40")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator 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: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (type_identifier) declarator: (identifier)) (expression_statement (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (MISSING identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) arguments: (argument_list (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: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (number_literal)) (MISSING ")")))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (number_literal)) (MISSING ")")))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))))) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (false))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (binary_expression left: (identifier) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (unary_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) condition: (parenthesized_expression (binary_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (true)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (number_literal) (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))))) (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))))) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_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: (identifier) right: (number_literal))))) right: (identifier))) consequence: (break_statement)) (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: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (true))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (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: (unary_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (identifier)))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (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)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (return_statement (identifier)))))

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

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  char cVar8;
  int iVar6;
  uint uVar7;
  __numpunct_cache<wchar_t> *this;
  int *piVar9;
  bool bVar10;
  int iVar11;
  uint uVar12;
  bool bVar13;
  uint uVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  int *local_res8;
  int local_resc;
  uint *local_68;
  uint local_64;
  uint local_60 [4];
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  int local_3c;
  uint local_38;
  uint **local_34;
  uint local_30;
  
  local_res8 = param_3;
  local_resc = param_4;
  iVar3 = (*(code *)PTR__M_id_00433800)(PTR_id_00433d20);
  piVar9 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar11 = *piVar9;
  if (iVar11 == 0) {
                    /* try { // try from 0033b7c0 to 0033b7c7 has its CatchHandler @ 0033bb18 */
    this = (__numpunct_cache<wchar_t> *)(*(code *)PTR_operator_new_0043233c)(0x128);
    *(undefined4 *)(this + 4) = 0;
    *(undefined4 *)(this + 8) = 0;
    *(undefined4 *)(this + 0xc) = 0;
    puVar2 = PTR_vtable_0043237c;
    this[0x10] = (__numpunct_cache<wchar_t>)0x0;
    *(undefined4 *)(this + 0x14) = 0;
    *(undefined4 *)(this + 0x18) = 0;
    *(undefined **)this = puVar2 + 8;
    *(undefined4 *)(this + 0x1c) = 0;
    *(undefined4 *)(this + 0x20) = 0;
    *(undefined4 *)(this + 0x24) = 0;
    *(undefined4 *)(this + 0x28) = 0;
                    /* try { // try from 0033b810 to 0033b817 has its CatchHandler @ 0033bab8 */
    this[0x124] = (__numpunct_cache<wchar_t>)0x0;
    std::__numpunct_cache<wchar_t>::_M_cache(this,(locale *)(param_7 + 0x6c));
    (*(code *)PTR__M_install_cache_004338a4)(*(undefined4 *)(param_7 + 0x6c),this,iVar3);
    iVar11 = *piVar9;
  }
  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;
  if (uVar16 == 0x40) {
    uVar4 = 8;
  }
  else {
    uVar4 = 10;
    if (uVar16 == 8) {
      uVar4 = 0x10;
    }
  }
  iVar3 = local_resc;
  if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
    if ((int *)local_res8[2] < (int *)local_res8[3]) {
      iVar3 = *(int *)local_res8[2];
    }
    else {
      iVar3 = (**(code **)(*local_res8 + 0x24))();
    }
    if (iVar3 == -1) {
      local_res8 = (int *)0x0;
    }
  }
  if ((param_5 == (int *)0x0) || (param_6 != -1)) {
    if ((param_6 == -1) != (iVar3 == -1)) goto LAB_0033ad4c;
LAB_0033b298:
    cVar8 = *(char *)(iVar11 + 0x10);
    uVar16 = 1;
    local_38 = 0;
    iVar3 = 0;
    iVar5 = 0;
    bVar13 = false;
LAB_0033b0b4:
    if (uVar4 == 0x10) goto LAB_0033b0c0;
LAB_0033ae20:
    local_60[0] = local_60[0] & 0xffffff;
    local_48 = uVar4;
    if (cVar8 == '\0') goto LAB_0033ae38;
LAB_0033b0e0:
    local_68 = local_60;
    local_64 = 0;
    local_40 = local_68;
                    /* try { // try from 0033b0e8 to 0033b413 has its CatchHandler @ 0033bae8 */
    (*(code *)PTR_reserve_004331f4)(&local_68,0x20);
    uVar17 = (uint)*(byte *)(iVar11 + 0x124);
    if (uVar4 == 0) {
      trap(7);
    }
    local_4c = 0xffffffff / uVar4;
    if (uVar17 != 0) goto LAB_0033b110;
LAB_0033ae54:
    local_50 = 0;
    if (uVar16 != 0) {
      uVar14 = 0;
      goto LAB_0033af18;
    }
    local_44 = local_48 + 0x30;
    local_48 = (uint)(local_48 < 0xb);
    uVar14 = 0;
LAB_0033ae78:
    if (local_48 == 0) goto LAB_0033b3ac;
LAB_0033ae80:
    if ((0x2f < iVar3) && (uVar16 = iVar3 - 0x30, iVar3 < (int)local_44)) {
LAB_0033ae98:
      if (uVar14 <= local_4c) goto LAB_0033b3cc;
LAB_0033aea8:
      local_50 = 1;
      uVar17 = local_res8[2];
      if ((uint)local_res8[3] <= uVar17) goto LAB_0033b404;
LAB_0033aec4:
      local_res8[2] = uVar17 + 4;
      piVar9 = (int *)local_res8[2];
      do {
        local_resc = -1;
        if (piVar9 < (int *)local_res8[3]) {
          iVar3 = *piVar9;
        }
        else {
          iVar3 = (**(code **)(*local_res8 + 0x24))();
        }
        if (iVar3 == -1) {
          local_res8 = (int *)0x0;
          bVar10 = true;
        }
        else {
          bVar10 = false;
        }
        do {
          if ((param_5 == (int *)0x0) || (param_6 != -1)) {
            bVar1 = param_6 == -1;
            iVar3 = local_resc;
          }
          else {
            if ((int *)param_5[2] < (int *)param_5[3]) {
              iVar3 = *(int *)param_5[2];
              if (iVar3 == -1) {
                param_5 = (int *)0x0;
              }
            }
            else {
                    /* try { // try from 0033b844 to 0033b8af has its CatchHandler @ 0033bae8 */
              iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
              if (iVar3 == -1) {
                param_5 = (int *)0x0;
              }
            }
            bVar1 = iVar3 == -1;
            iVar3 = local_resc;
          }
          local_resc = iVar3;
          if (bVar1 == bVar10) {
            uVar16 = 1;
            goto LAB_0033af18;
          }
          if ((local_res8 == (int *)0x0) || (iVar3 != -1)) goto LAB_0033ae78;
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            iVar3 = *(int *)local_res8[2];
          }
          else {
                    /* try { // try from 0033b968 to 0033b9c7 has its CatchHandler @ 0033bae8 */
            iVar3 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar3 != -1) goto LAB_0033ae78;
          local_res8 = (int *)0x0;
          if (local_48 != 0) goto LAB_0033ae80;
LAB_0033b3ac:
          uVar16 = iVar3 - 0x30;
          if (9 < uVar16) {
            if (iVar3 - 0x61U < 6) {
              uVar16 = iVar3 - 0x57;
              goto LAB_0033ae98;
            }
            uVar16 = iVar3 - 0x37;
            if (5 < iVar3 - 0x41U) goto LAB_0033b528;
            goto LAB_0033ae98;
          }
          if (local_4c < uVar14) goto LAB_0033aea8;
LAB_0033b3cc:
          iVar5 = iVar5 + 1;
          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);
          uVar17 = local_res8[2];
          uVar14 = uVar16 + uVar4 * uVar14;
          if (uVar17 < (uint)local_res8[3]) goto LAB_0033aec4;
LAB_0033b404:
          (**(code **)(*local_res8 + 0x28))();
          bVar10 = true;
          local_resc = -1;
        } while (local_res8 == (int *)0x0);
        piVar9 = (int *)local_res8[2];
      } while( true );
    }
LAB_0033b528:
    uVar16 = 0;
    if (local_64 == 0) goto LAB_0033af24;
LAB_0033b538:
    uVar15 = (undefined1)iVar5;
    local_44 = 0;
LAB_0033b540:
    uVar4 = local_64;
    uVar12 = local_64 + 1;
    uVar17 = local_60[0];
    if (local_68 == local_40) {
      uVar17 = 0xf;
    }
    if (uVar17 < uVar12) {
      (*(code *)PTR__M_mutate_00432e00)(&local_68,local_64,0,0,1);
    }
    *(undefined1 *)((int)local_68 + uVar4) = uVar15;
    *(undefined1 *)((int)local_68 + uVar12) = 0;
    local_64 = uVar12;
    iVar3 = (*(code *)PTR___verify_grouping_00433d24)
                      (*(undefined4 *)(iVar11 + 8),*(undefined4 *)(iVar11 + 0xc),&local_68);
    if (iVar3 == 0) {
      *param_8 = 4;
    }
    if ((((iVar5 != 0) || (bVar13)) || (local_64 != 0)) && (local_44 == 0)) {
LAB_0033b5b4:
      if (local_50 == 0) {
        if (local_38 != 0) {
          uVar14 = -uVar14;
        }
        *param_9 = uVar14;
      }
      else {
        *param_9 = 0xffffffff;
        *param_8 = 4;
      }
      goto LAB_0033af48;
    }
  }
  else {
    if ((int *)param_5[2] < (int *)param_5[3]) {
      iVar5 = *(int *)param_5[2];
      if (iVar5 == -1) {
        param_5 = (int *)0x0;
      }
    }
    else {
      iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
      if (iVar5 == -1) {
        param_5 = (int *)0x0;
      }
    }
    if ((iVar5 == -1) == (iVar3 == -1)) goto LAB_0033b298;
LAB_0033ad4c:
    iVar3 = local_resc;
    if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
      if ((int *)local_res8[2] < (int *)local_res8[3]) {
        iVar3 = *(int *)local_res8[2];
      }
      else {
        iVar3 = (**(code **)(*local_res8 + 0x24))();
      }
      if (iVar3 == -1) {
        local_res8 = (int *)0x0;
      }
    }
    cVar8 = *(char *)(iVar11 + 0x10);
    local_38 = (uint)(*(int *)(iVar11 + 0xbc) == iVar3);
    if ((*(int *)(iVar11 + 0xbc) != iVar3) && (*(int *)(iVar11 + 0xc0) != iVar3)) {
      local_38 = 0;
LAB_0033afc8:
      iVar5 = 0;
      bVar13 = false;
      do {
        if ((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) {
          if (uVar4 != 0x10) {
            uVar16 = 0;
            goto LAB_0033ae20;
          }
          local_60[0] = local_60[0] & 0xffffff;
          uVar16 = 0;
          local_48 = 0x16;
          goto LAB_0033b0e0;
        }
        if (*(int *)(iVar11 + 0x24) == iVar3) break;
        if (*(int *)(iVar11 + 0xcc) == iVar3) {
          if (bVar13) {
            if (uVar4 != 10) goto LAB_0033b008;
            if (uVar16 == 0) {
              iVar5 = 0;
              uVar4 = 8;
            }
            else {
LAB_0033b4b4:
              iVar5 = iVar5 + 1;
              bVar13 = true;
            }
          }
          else {
            bVar13 = true;
            if (uVar16 == 0) {
              iVar5 = 0;
              uVar4 = 8;
            }
            else {
              if (uVar4 != 8) goto LAB_0033b4b4;
              iVar5 = 0;
              bVar13 = true;
            }
          }
LAB_0033b038:
          uVar17 = local_res8[2];
          if (uVar17 < (uint)local_res8[3]) goto LAB_0033b050;
LAB_0033b44c:
          (**(code **)(*local_res8 + 0x28))();
          uVar17 = 1;
          local_resc = -1;
          if (local_res8 != (int *)0x0) {
            piVar9 = (int *)local_res8[2];
            goto LAB_0033b064;
          }
        }
        else {
          if (!bVar13) break;
LAB_0033b008:
          if ((*(int *)(iVar11 + 0xc4) != iVar3) && (*(int *)(iVar11 + 200) != iVar3)) {
            uVar16 = 0;
            bVar13 = true;
            goto LAB_0033b0b4;
          }
          if (uVar16 != 0) {
            if (uVar4 == 0x10) {
              iVar5 = 0;
              bVar13 = false;
              goto LAB_0033b038;
            }
            uVar16 = 0;
            bVar13 = true;
            goto LAB_0033ae20;
          }
          iVar5 = 0;
          bVar13 = false;
          uVar17 = local_res8[2];
          uVar4 = 0x10;
          if ((uint)local_res8[3] <= uVar17) goto LAB_0033b44c;
LAB_0033b050:
          local_res8[2] = uVar17 + 4;
          piVar9 = (int *)local_res8[2];
LAB_0033b064:
          local_resc = -1;
          if (piVar9 < (int *)local_res8[3]) {
            iVar6 = *piVar9;
          }
          else {
            iVar6 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar6 == -1) {
            local_res8 = (int *)0x0;
            uVar17 = 1;
          }
          else {
            uVar17 = 0;
          }
        }
        if ((param_5 == (int *)0x0) || (param_6 != -1)) {
          if ((param_6 == -1) == uVar17) goto LAB_0033b0ac;
        }
        else {
          if ((int *)param_5[2] < (int *)param_5[3]) {
            iVar6 = *(int *)param_5[2];
            if (iVar6 == -1) {
              param_5 = (int *)0x0;
            }
          }
          else {
            local_50 = uVar17;
            iVar6 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar17 = local_50;
            if (iVar6 == -1) {
              param_5 = (int *)0x0;
            }
          }
          if ((iVar6 == -1) == uVar17) {
LAB_0033b0ac:
            cVar8 = *(char *)(iVar11 + 0x10);
            uVar16 = 1;
            goto LAB_0033b0b4;
          }
        }
        iVar3 = local_resc;
        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            iVar3 = *(int *)local_res8[2];
          }
          else {
            iVar3 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar3 == -1) {
            local_res8 = (int *)0x0;
          }
        }
        cVar8 = *(char *)(iVar11 + 0x10);
      } while (bVar13);
      uVar16 = 0;
      goto LAB_0033b0b4;
    }
    if (((cVar8 != '\0') && (*(int *)(iVar11 + 0x28) == iVar3)) ||
       (*(int *)(iVar11 + 0x24) == iVar3)) goto LAB_0033afc8;
    if ((uint)local_res8[2] < (uint)local_res8[3]) {
      local_res8[2] = local_res8[2] + 4;
      piVar9 = (int *)local_res8[2];
LAB_0033adc0:
      local_resc = -1;
      if (piVar9 < (int *)local_res8[3]) {
        iVar5 = *piVar9;
      }
      else {
        iVar5 = (**(code **)(*local_res8 + 0x24))();
      }
      if (iVar5 == -1) {
        local_res8 = (int *)0x0;
        bVar13 = true;
      }
      else {
        bVar13 = false;
      }
    }
    else {
      bVar13 = true;
      (**(code **)(*local_res8 + 0x28))();
      local_resc = -1;
      if (local_res8 != (int *)0x0) {
        piVar9 = (int *)local_res8[2];
        goto LAB_0033adc0;
      }
    }
    iVar5 = param_6;
    if ((param_5 != (int *)0x0) && (param_6 == -1)) {
      if ((int *)param_5[2] < (int *)param_5[3]) {
        iVar5 = *(int *)param_5[2];
        if (iVar5 == -1) {
          param_5 = (int *)0x0;
        }
      }
      else {
        iVar5 = (**(code **)(*param_5 + 0x24))(param_5);
        if (iVar5 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    if ((iVar5 == -1) != bVar13) {
      iVar3 = FUN_003348d8(&local_res8,local_resc);
      cVar8 = *(char *)(iVar11 + 0x10);
      goto LAB_0033afc8;
    }
    cVar8 = *(char *)(iVar11 + 0x10);
    uVar16 = 1;
    iVar5 = 0;
    bVar13 = false;
    if (uVar4 != 0x10) goto LAB_0033ae20;
LAB_0033b0c0:
    local_60[0] = local_60[0] & 0xffffff;
    local_48 = 0x16;
    if (cVar8 != '\0') goto LAB_0033b0e0;
LAB_0033ae38:
    local_68 = local_60;
    local_64 = 0;
    uVar17 = (uint)*(byte *)(iVar11 + 0x124);
    if (uVar4 == 0) {
      trap(7);
    }
    local_4c = 0xffffffff / uVar4;
    local_40 = local_68;
    if (uVar17 == 0) goto LAB_0033ae54;
LAB_0033b110:
    if (uVar16 == 0) {
      local_50 = 0;
      local_34 = &local_68;
      uVar14 = 0;
      local_3c = iVar11 + 0xcc;
LAB_0033b128:
      iVar6 = local_3c;
      uVar16 = local_64;
      local_44 = (uint)*(byte *)(iVar11 + 0x10);
      uVar12 = uVar17;
      if ((local_44 == 0) || (*(int *)(iVar11 + 0x28) != iVar3)) {
        if ((iVar3 == *(int *)(iVar11 + 0x24)) ||
           (iVar3 = (*(code *)PTR_wmemchr_004368f4)(local_3c,iVar3,local_48), iVar3 == 0))
        goto LAB_0033b528;
        uVar16 = iVar3 - iVar6 >> 2;
        if (0x3c < iVar3 - iVar6) {
          uVar16 = uVar16 - 6;
        }
        if (uVar14 <= local_4c) {
          iVar5 = iVar5 + 1;
          local_50 = local_50 & 0xff | (uint)(~uVar16 < uVar4 * uVar14);
          uVar14 = uVar16 + uVar4 * uVar14;
          goto LAB_0033b1b0;
        }
        uVar16 = local_res8[2];
        local_50 = uVar17;
        if ((uint)local_res8[3] <= uVar16) goto LAB_0033b620;
LAB_0033b1c8:
        local_res8[2] = uVar16 + 4;
        piVar9 = (int *)local_res8[2];
LAB_0033b1d8:
        local_resc = -1;
        if (piVar9 < (int *)local_res8[3]) {
          iVar3 = *piVar9;
        }
        else {
          iVar3 = (**(code **)(*local_res8 + 0x24))();
        }
        if (iVar3 == -1) {
          local_res8 = (int *)0x0;
        }
        else {
          uVar12 = 0;
        }
      }
      else {
        if (iVar5 == 0) {
          if (local_64 == 0) {
            *param_9 = 0;
            *param_8 = 4;
            goto LAB_0033af60;
          }
          uVar16 = 0;
          uVar15 = 0;
          goto LAB_0033b540;
        }
        local_44 = (uint)(char)iVar5;
        local_30 = local_64 + 1;
        uVar7 = 0xf;
        if (local_68 != local_40) {
          uVar7 = local_60[0];
        }
        if (uVar7 < local_64 + 1) {
                    /* try { // try from 0033b784 to 0033b78b has its CatchHandler @ 0033bae8 */
          (*(code *)PTR__M_mutate_00432e00)(local_34,local_64,0,0,1);
        }
        local_64 = local_30;
        iVar5 = 0;
        *(char *)((int)local_68 + uVar16) = (char)local_44;
        *(undefined1 *)((int)local_68 + local_30) = 0;
LAB_0033b1b0:
        uVar16 = local_res8[2];
        if (uVar16 < (uint)local_res8[3]) goto LAB_0033b1c8;
LAB_0033b620:
                    /* try { // try from 0033b628 to 0033b62f has its CatchHandler @ 0033bae8 */
        (**(code **)(*local_res8 + 0x28))();
        local_resc = -1;
        if (local_res8 != (int *)0x0) {
          piVar9 = (int *)local_res8[2];
          goto LAB_0033b1d8;
        }
      }
      iVar3 = param_6;
      if ((param_5 != (int *)0x0) && (param_6 == -1)) {
        if ((int *)param_5[2] < (int *)param_5[3]) {
          iVar3 = *(int *)param_5[2];
          if (iVar3 == -1) {
            param_5 = (int *)0x0;
          }
        }
        else {
          iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
          if (iVar3 == -1) {
            param_5 = (int *)0x0;
          }
        }
      }
      uVar16 = uVar17;
      if ((iVar3 == -1) != uVar12) {
        iVar3 = local_resc;
        if ((local_res8 != (int *)0x0) && (local_resc == -1)) {
          if ((int *)local_res8[2] < (int *)local_res8[3]) {
            iVar3 = *(int *)local_res8[2];
          }
          else {
                    /* try { // try from 0033ba5c to 0033ba63 has its CatchHandler @ 0033bae8 */
            iVar3 = (**(code **)(*local_res8 + 0x24))();
          }
          if (iVar3 == -1) {
            local_res8 = (int *)0x0;
          }
        }
        goto LAB_0033b128;
      }
    }
    else {
      local_50 = 0;
      uVar14 = 0;
    }
LAB_0033af18:
    if (local_64 != 0) goto LAB_0033b538;
LAB_0033af24:
    if ((iVar5 != 0) || (bVar13)) goto LAB_0033b5b4;
  }
  *param_9 = 0;
  *param_8 = 4;
LAB_0033af48:
  if (uVar16 != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_0033af60:
  *param_1 = (int)local_res8;
  param_1[1] = local_resc;
  if (local_68 != local_40) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return param_1;
}

