
/* WARNING: Removing unreachable block (ram,0x003c8858) */
/* std::istreambuf_iterator<char, std::char_traits<char> > std::num_get<char,
   std::istreambuf_iterator<char, std::char_traits<char> > >::_M_extract_int[abi:cxx11]<unsigned
   long long>(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&,
   unsigned long long&) const */

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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  char cVar9;
  int iVar8;
  bool bVar10;
  uint uVar11;
  int iVar12;
  bool bVar13;
  int *piVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  int *local_res8;
  uint local_resc;
  uint *local_70;
  uint local_6c;
  uint local_68 [4];
  uint local_58;
  uint local_54;
  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;
  uint **local_2c;
  
  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);
  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar12 = *piVar14;
  if (iVar12 == 0) {
                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */
    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0;
    puVar2 = PTR__M_cache_004c2d40;
    puVar1 = PTR_vtable_004c13b0;
    *(undefined1 *)(puVar7 + 4) = 0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    *puVar7 = puVar1 + 8;
    puVar7[7] = 0;
    puVar7[8] = 0;
    *(undefined2 *)(puVar7 + 9) = 0;
                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */
    *(undefined1 *)(puVar7 + 0x19) = 0;
    (*(code *)puVar2)(puVar7,param_7 + 0x6c);
    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);
    iVar12 = *piVar14;
  }
  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;
  local_res8 = param_3;
  local_resc = param_4;
  if (uVar16 == 0x40) {
    uVar4 = 8;
    if (param_3 == (int *)0x0) goto LAB_003c90b4;
LAB_003c86b4:
    if (param_4 == 0xffffffff) {
      bVar13 = false;
      if (((uint)param_3[3] <= (uint)param_3[2]) &&
         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {
        local_res8 = (int *)0x0;
        bVar13 = true;
      }
    }
    else {
      bVar13 = false;
    }
    if (param_5 != (int *)0x0) goto LAB_003c86cc;
LAB_003c90c4:
    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;
  }
  else {
    uVar4 = 10;
    if (uVar16 == 8) {
      uVar4 = 0x10;
    }
    if (param_3 != (int *)0x0) goto LAB_003c86b4;
LAB_003c90b4:
    bVar13 = param_4 == 0xffffffff;
    if (param_5 == (int *)0x0) goto LAB_003c90c4;
LAB_003c86cc:
    if (param_6 == -1) {
      bVar10 = false;
      if ((uint)param_5[3] <= (uint)param_5[2]) {
        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
        bVar10 = iVar3 == -1;
        if (iVar3 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    else {
      bVar10 = false;
    }
    if (bVar10 == bVar13) {
LAB_003c90d0:
      cVar9 = *(char *)(iVar12 + 0x10);
      uVar16 = 1;
      local_38 = 0;
      uVar11 = 0;
      iVar3 = 0;
      bVar13 = false;
      goto joined_r0x003c8b00;
    }
  }
  if ((local_res8 == (int *)0x0) || (param_4 != 0xffffffff)) {
    uVar11 = (uint)(char)param_4;
  }
  else if ((char *)local_res8[2] < (char *)local_res8[3]) {
    uVar11 = (uint)*(char *)local_res8[2];
  }
  else {
    iVar3 = (**(code **)(*local_res8 + 0x24))();
    if (iVar3 == -1) {
      uVar11 = 0xffffffff;
      local_res8 = (int *)0x0;
    }
    else {
      uVar11 = (uint)(char)iVar3;
    }
  }
  cVar9 = *(char *)(iVar12 + 0x10);
  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);
  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {
    local_38 = 0;
    goto LAB_003c8a14;
  }
  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||
     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;
  if ((uint)local_res8[2] < (uint)local_res8[3]) {
    local_res8[2] = local_res8[2] + 1;
    uVar5 = local_res8[2];
LAB_003c8768:
    bVar13 = false;
    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)
       ) {
      bVar13 = true;
      local_res8 = (int *)0x0;
    }
  }
  else {
    bVar13 = true;
    (**(code **)(*local_res8 + 0x28))();
    if (local_res8 != (int *)0x0) {
      uVar5 = local_res8[2];
      goto LAB_003c8768;
    }
  }
  local_resc = 0xffffffff;
  if (param_5 == (int *)0x0) {
    bVar10 = param_6 == -1;
  }
  else if (param_6 == -1) {
    bVar10 = false;
    if ((uint)param_5[3] <= (uint)param_5[2]) {
      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
      bVar10 = iVar3 == -1;
      if (iVar3 == -1) {
        param_5 = (int *)0x0;
      }
    }
  }
  else {
    bVar10 = false;
  }
  if (bVar10 != bVar13) {
    cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();
    uVar11 = (uint)cVar9;
    cVar9 = *(char *)(iVar12 + 0x10);
LAB_003c8a14:
    iVar3 = 0;
    local_58 = (uint)(param_6 == -1);
    bVar13 = false;
    do {
      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||
         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {
LAB_003c8e28:
        uVar16 = 0;
        goto joined_r0x003c8b00;
      }
      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {
        if (bVar13) {
          if (uVar4 != 10) goto LAB_003c8a60;
          if (uVar16 == 0) {
            iVar3 = 0;
            uVar4 = 8;
          }
          else {
LAB_003c8db8:
            iVar3 = iVar3 + 1;
            bVar13 = true;
          }
        }
        else {
          bVar13 = true;
          if (uVar16 == 0) {
            iVar3 = 0;
            uVar4 = 8;
          }
          else {
            if (uVar4 != 8) goto LAB_003c8db8;
            iVar3 = 0;
            bVar13 = true;
          }
        }
LAB_003c8a94:
        uVar5 = local_res8[2];
        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;
LAB_003c8cb0:
        uVar5 = 1;
        (**(code **)(*local_res8 + 0x28))();
        if (local_res8 != (int *)0x0) goto LAB_003c8abc;
        if (param_5 != (int *)0x0) goto LAB_003c8adc;
LAB_003c8cdc:
        if (local_58 == uVar5) {
LAB_003c8af0:
          local_resc = 0xffffffff;
          cVar9 = *(char *)(iVar12 + 0x10);
          uVar16 = 1;
          goto joined_r0x003c8b00;
        }
      }
      else {
        if (!bVar13) goto LAB_003c8e28;
LAB_003c8a60:
        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))
        {
          bVar13 = true;
          uVar16 = 0;
          goto joined_r0x003c8b00;
        }
        if (uVar16 != 0) {
          bVar13 = true;
          if (uVar4 == 0x10) {
            iVar3 = 0;
            bVar13 = false;
            goto LAB_003c8a94;
          }
          uVar16 = 0;
          local_48 = uVar4;
          goto joined_r0x003c87bc;
        }
        iVar3 = 0;
        bVar13 = false;
        uVar5 = local_res8[2];
        uVar4 = 0x10;
        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;
LAB_003c8aac:
        local_res8[2] = uVar5 + 1;
LAB_003c8abc:
        uVar5 = 0;
        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
          uVar5 = 1;
          local_res8 = (int *)0x0;
        }
        if (param_5 == (int *)0x0) goto LAB_003c8cdc;
LAB_003c8adc:
        if (param_6 == -1) {
          uVar17 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar17 = (uint)(iVar8 == -1);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
            }
          }
        }
        else {
          uVar17 = 0;
        }
        if (uVar17 == uVar5) goto LAB_003c8af0;
      }
      local_resc = 0xffffffff;
      if (local_res8 == (int *)0x0) {
        uVar11 = 0xffffffff;
      }
      else if ((char *)local_res8[2] < (char *)local_res8[3]) {
        uVar11 = (uint)*(char *)local_res8[2];
      }
      else {
        iVar8 = (**(code **)(*local_res8 + 0x24))();
        if (iVar8 == -1) {
          uVar11 = 0xffffffff;
          local_res8 = (int *)0x0;
        }
        else {
          uVar11 = (uint)(char)iVar8;
        }
      }
      if (!bVar13) goto LAB_003c93b4;
      cVar9 = *(char *)(iVar12 + 0x10);
    } while( true );
  }
  cVar9 = *(char *)(iVar12 + 0x10);
  uVar16 = 1;
  iVar3 = 0;
  bVar13 = false;
joined_r0x003c8b00:
  local_48 = uVar4;
  if (uVar4 == 0x10) {
    local_48 = 0x16;
  }
joined_r0x003c87bc:
  local_68[0] = local_68[0] & 0xffffff;
  local_6c = 0;
  local_70 = local_68;
  local_40 = local_70;
  if (cVar9 != '\0') {
    local_70 = local_68;
    local_6c = 0;
    local_40 = local_70;
                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */
    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);
  }
  uVar20 = __udivdi3(0xffffffff,0xffffffff,0,uVar4);
  uVar17 = (uint)*(byte *)(iVar12 + 100);
  uVar5 = uVar16;
  if (uVar17 == 0) {
    if (uVar16 != 0) {
      local_58 = 0;
      uVar5 = 0;
      local_54 = 0;
      goto LAB_003c8928;
    }
    local_58 = 0;
    local_54 = 0;
    bVar10 = local_48 < 0xb;
    local_4c = (uint)(char)((char)local_48 + '0');
    local_48 = (uint)(param_6 == -1);
LAB_003c881c:
    uVar16 = uVar11;
    if (!bVar10) goto LAB_003c8bb8;
LAB_003c8824:
    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {
LAB_003c883c:
      uVar11 = uVar11 - 0x30;
LAB_003c8844:
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      if (uVar20 < CONCAT44(uVar5,local_54)) {
        local_58 = 1;
        uVar16 = local_res8[2];
        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;
LAB_003c88e4:
        local_res8[2] = uVar16 + 1;
LAB_003c88f0:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        uVar16 = 0;
        if ((uint)local_res8[3] <= (uint)local_res8[2]) {
                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            uVar16 = 1;
            local_res8 = (int *)0x0;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
        if (param_5 == (int *)0x0) goto LAB_003c8b8c;
LAB_003c8910:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        if (param_6 == -1) {
          uVar11 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar11 = (uint)(iVar8 == -1);
            uVar20 = CONCAT44(local_50,local_44);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar20 = CONCAT44(local_50,local_44);
            }
          }
        }
        else {
          uVar11 = 0;
        }
        if (uVar11 == uVar16) goto LAB_003c8924;
      }
      else {
        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);
        uVar17 = ~((int)uVar11 >> 0x1f);
        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);
        uVar16 = 1;
        if (uVar5 <= uVar17) {
          if (uVar5 == uVar17) {
            if (uVar18 <= ~uVar11) {
              uVar16 = 0;
            }
          }
          else {
            uVar16 = 0;
          }
        }
        local_54 = uVar11 + uVar18;
        local_58 = local_58 & 0xff | uVar16;
        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;
        uVar16 = local_res8[2];
        iVar3 = iVar3 + 1;
        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;
LAB_003c8b5c:
        (**(code **)(*local_res8 + 0x28))();
        uVar20 = CONCAT44(local_50,local_44);
        uVar16 = 1;
        if (local_res8 != (int *)0x0) goto LAB_003c88f0;
        if (param_5 != (int *)0x0) goto LAB_003c8910;
LAB_003c8b8c:
        if (local_48 == uVar16) {
LAB_003c8924:
          local_resc = 0xffffffff;
          uVar16 = 1;
          goto LAB_003c8928;
        }
      }
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      local_resc = 0xffffffff;
      if (local_res8 == (int *)0x0) {
        uVar11 = 0xffffffff;
        uVar16 = local_resc;
        if (bVar10) goto LAB_003c8824;
LAB_003c8bb8:
        uVar11 = uVar16;
        uVar16 = uVar11 & 0xff;
        if (uVar16 - 0x30 < 10) goto LAB_003c883c;
      }
      else {
        if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar11 = (uint)*(char *)local_res8[2];
          goto LAB_003c881c;
        }
                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */
        iVar8 = (**(code **)(*local_res8 + 0x24))();
        uVar20 = CONCAT44(local_50,local_44);
        uVar11 = (uint)(char)iVar8;
        if (iVar8 != -1) goto LAB_003c881c;
        local_res8 = (int *)0x0;
        if (bVar10) goto LAB_003c8bf4;
        uVar16 = 0xff;
        uVar11 = 0xffffffff;
      }
      if (uVar16 - 0x61 < 6) {
        uVar11 = uVar11 - 0x57;
      }
      else {
        uVar11 = uVar11 - 0x37;
        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;
      }
      goto LAB_003c8844;
    }
LAB_003c8bf4:
    uVar16 = 0;
    if (local_6c != 0) goto LAB_003c8c04;
LAB_003c8934:
    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;
LAB_003c8c80:
    uVar4 = 0xffffffff;
    if (local_58 == 0) {
      if (local_38 != 0) {
        local_54 = -local_54;
        uVar5 = -(uint)(local_54 != 0) - uVar5;
      }
      *param_9 = uVar5;
      param_9[1] = local_54;
      goto LAB_003c8960;
    }
    uVar11 = 0xffffffff;
  }
  else {
    if (uVar16 == 0) {
      local_58 = 0;
      local_54 = 0;
      local_2c = &local_70;
      local_34 = (uint)(param_6 == -1);
      local_3c = iVar12 + 0x4e;
LAB_003c8e5c:
      iVar8 = local_3c;
      uVar16 = local_6c;
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      local_4c = (uint)*(byte *)(iVar12 + 0x10);
      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {
        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;
        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);
        uVar20 = CONCAT44(local_50,local_44);
        if (iVar6 == 0) goto LAB_003c8bf4;
        uVar16 = iVar6 - iVar8;
        if (0xf < (int)uVar16) {
          uVar16 = uVar16 - 6;
        }
        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {
          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);
          uVar18 = ~((int)uVar16 >> 0x1f);
          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);
          uVar11 = 1;
          if (uVar5 <= uVar18) {
            if (uVar5 == uVar18) {
              if (uVar19 <= ~uVar16) {
                uVar11 = 0;
              }
            }
            else {
              uVar11 = 0;
            }
          }
          local_54 = uVar16 + uVar19;
          local_58 = local_58 & 0xff | uVar11;
          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;
          iVar3 = iVar3 + 1;
          goto LAB_003c8f38;
        }
        uVar16 = local_res8[2];
        local_58 = uVar17;
        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;
LAB_003c8f50:
        local_res8[2] = uVar16 + 1;
LAB_003c8f5c:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        uVar11 = 0;
        if ((uint)local_res8[3] <= (uint)local_res8[2]) {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar11 = uVar17;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
      }
      else {
        if (iVar3 == 0) {
          if (local_6c == 0) {
            param_9[1] = 0;
            *param_9 = 0;
            *param_8 = 4;
            goto LAB_003c8978;
          }
          uVar16 = 0;
          uVar15 = 0;
          goto LAB_003c8c0c;
        }
        local_4c = (uint)(char)iVar3;
        local_30 = local_6c + 1;
        uVar11 = 0xf;
        if (local_70 != local_40) {
          uVar11 = local_68[0];
        }
        if (uVar11 < local_6c + 1) {
          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);
          uVar20 = CONCAT44(local_50,local_44);
        }
        local_6c = local_30;
        iVar3 = 0;
        *(char *)((int)local_70 + uVar16) = (char)local_4c;
        *(undefined1 *)((int)local_70 + local_30) = 0;
LAB_003c8f38:
        uVar16 = local_res8[2];
        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;
LAB_003c8fcc:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        (**(code **)(*local_res8 + 0x28))();
        uVar20 = CONCAT44(local_50,local_44);
        uVar11 = uVar17;
        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;
      }
      uVar18 = local_34;
      if (param_5 != (int *)0x0) {
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        if (param_6 == -1) {
          uVar18 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar20 = CONCAT44(local_50,local_44);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar18 = uVar17;
              uVar20 = CONCAT44(local_50,local_44);
            }
            else {
              uVar18 = 0;
            }
          }
        }
        else {
          uVar18 = 0;
        }
      }
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      local_resc = 0xffffffff;
      uVar16 = uVar17;
      if (uVar11 != uVar18) {
        if (local_res8 == (int *)0x0) {
          uVar11 = 0xffffffff;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar11 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar11 = (uint)(char)iVar8;
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar11 = 0xffffffff;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
        goto LAB_003c8e5c;
      }
    }
    else {
      local_54 = 0;
      uVar5 = 0;
      local_58 = 0;
    }
LAB_003c8928:
    if (local_6c == 0) goto LAB_003c8934;
LAB_003c8c04:
    uVar15 = (undefined1)iVar3;
    local_4c = 0;
LAB_003c8c0c:
    uVar4 = local_6c;
    local_50 = (uint)(uVar20 >> 0x20);
    local_44 = (uint)uVar20;
    uVar17 = local_6c + 1;
    uVar11 = local_68[0];
    if (local_70 == local_40) {
      uVar11 = 0xf;
    }
    if (uVar11 < uVar17) {
      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);
      uVar20 = CONCAT44(local_50,local_44);
    }
    local_50 = (uint)(uVar20 >> 0x20);
    local_44 = (uint)uVar20;
    *(undefined1 *)((int)local_70 + uVar4) = uVar15;
    *(undefined1 *)((int)local_70 + uVar17) = 0;
    local_6c = uVar17;
    iVar12 = __verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);
    uVar20 = CONCAT44(local_50,local_44);
    if (iVar12 == 0) {
      *param_8 = 4;
    }
    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;
LAB_003c8944:
    uVar4 = 0;
    uVar11 = 0;
  }
  param_9[1] = uVar4;
  *param_9 = uVar11;
  *param_8 = 4;
LAB_003c8960:
  if (uVar16 != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_003c8978:
  local_50 = (uint)(uVar20 >> 0x20);
  local_44 = (uint)uVar20;
  *param_1 = (int)local_res8;
  param_1[1] = local_resc;
  if (local_70 != local_40) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return param_1;
LAB_003c93b4:
  cVar9 = *(char *)(iVar12 + 0x10);
  uVar16 = 0;
  goto joined_r0x003c8b00;
}



/* WARNING: Removing unreachable block (ram,0x003c8858) */

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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  char cVar9;
  int iVar8;
  bool bVar10;
  uint uVar11;
  int iVar12;
  bool bVar13;
  int *piVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  int *local_res8;
  uint local_resc;
  uint *local_70;
  uint local_6c;
  uint local_68 [4];
  uint local_58;
  uint local_54;
  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;
  uint **local_2c;
  
  local_res8 = param_3;
  local_resc = param_4;
  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);
  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar12 = *piVar14;
  if (iVar12 == 0) {
                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */
    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0;
    puVar2 = PTR__M_cache_004c2d40;
    puVar1 = PTR_vtable_004c13b0;
    *(undefined1 *)(puVar7 + 4) = 0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    *puVar7 = puVar1 + 8;
    puVar7[7] = 0;
    puVar7[8] = 0;
    *(undefined2 *)(puVar7 + 9) = 0;
                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */
    *(undefined1 *)(puVar7 + 0x19) = 0;
    (*(code *)puVar2)(puVar7,param_7 + 0x6c);
    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);
    iVar12 = *piVar14;
  }
  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;
  if (uVar16 == 0x40) {
    uVar4 = 8;
    if (local_res8 == (int *)0x0) goto LAB_003c90b4;
LAB_003c86b4:
    if (local_resc == 0xffffffff) {
      bVar13 = false;
      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {
        local_res8 = (int *)0x0;
        bVar13 = true;
      }
    }
    else {
      bVar13 = false;
    }
    if (param_5 != (int *)0x0) goto LAB_003c86cc;
LAB_003c90c4:
    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;
  }
  else {
    uVar4 = 10;
    if (uVar16 == 8) {
      uVar4 = 0x10;
    }
    if (local_res8 != (int *)0x0) goto LAB_003c86b4;
LAB_003c90b4:
    bVar13 = local_resc == 0xffffffff;
    if (param_5 == (int *)0x0) goto LAB_003c90c4;
LAB_003c86cc:
    if (param_6 == -1) {
      bVar10 = false;
      if ((uint)param_5[3] <= (uint)param_5[2]) {
        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
        bVar10 = iVar3 == -1;
        if (iVar3 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    else {
      bVar10 = false;
    }
    if (bVar10 == bVar13) {
LAB_003c90d0:
      cVar9 = *(char *)(iVar12 + 0x10);
      uVar16 = 1;
      local_38 = 0;
      uVar11 = 0;
      iVar3 = 0;
      bVar13 = false;
      goto joined_r0x003c8b00;
    }
  }
  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
    uVar11 = (uint)(char)local_resc;
  }
  else if ((char *)local_res8[2] < (char *)local_res8[3]) {
    uVar11 = (uint)*(char *)local_res8[2];
  }
  else {
    iVar3 = (**(code **)(*local_res8 + 0x24))();
    if (iVar3 == -1) {
      uVar11 = 0xffffffff;
      local_res8 = (int *)0x0;
    }
    else {
      uVar11 = (uint)(char)iVar3;
    }
  }
  cVar9 = *(char *)(iVar12 + 0x10);
  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);
  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {
    local_38 = 0;
    goto LAB_003c8a14;
  }
  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||
     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;
  if ((uint)local_res8[2] < (uint)local_res8[3]) {
    local_res8[2] = local_res8[2] + 1;
    uVar5 = local_res8[2];
LAB_003c8768:
    local_resc = 0xffffffff;
    bVar13 = false;
    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)
       ) {
      bVar13 = true;
      local_res8 = (int *)0x0;
    }
  }
  else {
    bVar13 = true;
    (**(code **)(*local_res8 + 0x28))();
    local_resc = 0xffffffff;
    if (local_res8 != (int *)0x0) {
      uVar5 = local_res8[2];
      goto LAB_003c8768;
    }
  }
  if (param_5 == (int *)0x0) {
    bVar10 = param_6 == -1;
  }
  else if (param_6 == -1) {
    bVar10 = false;
    if ((uint)param_5[3] <= (uint)param_5[2]) {
      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
      bVar10 = iVar3 == -1;
      if (iVar3 == -1) {
        param_5 = (int *)0x0;
      }
    }
  }
  else {
    bVar10 = false;
  }
  if (bVar10 != bVar13) {
    cVar9 = FUN_003c05e4(&local_res8,local_resc);
    uVar11 = (uint)cVar9;
    cVar9 = *(char *)(iVar12 + 0x10);
LAB_003c8a14:
    iVar3 = 0;
    local_58 = (uint)(param_6 == -1);
    bVar13 = false;
    do {
      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||
         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {
LAB_003c8e28:
        uVar16 = 0;
        goto joined_r0x003c8b00;
      }
      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {
        if (bVar13) {
          if (uVar4 != 10) goto LAB_003c8a60;
          if (uVar16 == 0) {
            iVar3 = 0;
            uVar4 = 8;
          }
          else {
LAB_003c8db8:
            iVar3 = iVar3 + 1;
            bVar13 = true;
          }
        }
        else {
          bVar13 = true;
          if (uVar16 == 0) {
            iVar3 = 0;
            uVar4 = 8;
          }
          else {
            if (uVar4 != 8) goto LAB_003c8db8;
            iVar3 = 0;
            bVar13 = true;
          }
        }
LAB_003c8a94:
        uVar5 = local_res8[2];
        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;
LAB_003c8cb0:
        uVar5 = 1;
        (**(code **)(*local_res8 + 0x28))();
        local_resc = 0xffffffff;
        if (local_res8 != (int *)0x0) goto LAB_003c8abc;
        if (param_5 != (int *)0x0) goto LAB_003c8adc;
LAB_003c8cdc:
        if (local_58 == uVar5) {
LAB_003c8af0:
          cVar9 = *(char *)(iVar12 + 0x10);
          uVar16 = 1;
          goto joined_r0x003c8b00;
        }
      }
      else {
        if (!bVar13) goto LAB_003c8e28;
LAB_003c8a60:
        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))
        {
          bVar13 = true;
          uVar16 = 0;
          goto joined_r0x003c8b00;
        }
        if (uVar16 != 0) {
          bVar13 = true;
          if (uVar4 == 0x10) {
            iVar3 = 0;
            bVar13 = false;
            goto LAB_003c8a94;
          }
          uVar16 = 0;
          local_48 = uVar4;
          goto joined_r0x003c87bc;
        }
        iVar3 = 0;
        bVar13 = false;
        uVar5 = local_res8[2];
        uVar4 = 0x10;
        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;
LAB_003c8aac:
        local_res8[2] = uVar5 + 1;
LAB_003c8abc:
        local_resc = 0xffffffff;
        uVar5 = 0;
        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
          uVar5 = 1;
          local_res8 = (int *)0x0;
        }
        if (param_5 == (int *)0x0) goto LAB_003c8cdc;
LAB_003c8adc:
        if (param_6 == -1) {
          uVar17 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar17 = (uint)(iVar8 == -1);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
            }
          }
        }
        else {
          uVar17 = 0;
        }
        if (uVar17 == uVar5) goto LAB_003c8af0;
      }
      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
        uVar11 = (uint)(char)local_resc;
      }
      else if ((char *)local_res8[2] < (char *)local_res8[3]) {
        uVar11 = (uint)*(char *)local_res8[2];
      }
      else {
        iVar8 = (**(code **)(*local_res8 + 0x24))();
        if (iVar8 == -1) {
          uVar11 = 0xffffffff;
          local_res8 = (int *)0x0;
        }
        else {
          uVar11 = (uint)(char)iVar8;
        }
      }
      if (!bVar13) goto LAB_003c93b4;
      cVar9 = *(char *)(iVar12 + 0x10);
    } while( true );
  }
  cVar9 = *(char *)(iVar12 + 0x10);
  uVar16 = 1;
  iVar3 = 0;
  bVar13 = false;
joined_r0x003c8b00:
  local_48 = uVar4;
  if (uVar4 == 0x10) {
    local_48 = 0x16;
  }
joined_r0x003c87bc:
  local_68[0] = local_68[0] & 0xffffff;
  local_6c = 0;
  local_70 = local_68;
  local_40 = local_70;
  if (cVar9 != '\0') {
    local_70 = local_68;
    local_6c = 0;
    local_40 = local_70;
                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */
    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);
  }
  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);
  uVar17 = (uint)*(byte *)(iVar12 + 100);
  uVar5 = uVar16;
  if (uVar17 == 0) {
    if (uVar16 != 0) {
      local_58 = 0;
      uVar5 = 0;
      local_54 = 0;
      goto LAB_003c8928;
    }
    local_58 = 0;
    local_54 = 0;
    bVar10 = local_48 < 0xb;
    local_4c = (uint)(char)((char)local_48 + '0');
    local_48 = (uint)(param_6 == -1);
LAB_003c881c:
    uVar16 = uVar11;
    if (!bVar10) goto LAB_003c8bb8;
LAB_003c8824:
    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {
LAB_003c883c:
      uVar11 = uVar11 - 0x30;
LAB_003c8844:
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      if (uVar20 < CONCAT44(uVar5,local_54)) {
        local_58 = 1;
        uVar16 = local_res8[2];
        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;
LAB_003c88e4:
        local_res8[2] = uVar16 + 1;
LAB_003c88f0:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        local_resc = 0xffffffff;
        uVar16 = 0;
        if ((uint)local_res8[3] <= (uint)local_res8[2]) {
                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            uVar16 = 1;
            local_res8 = (int *)0x0;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
        if (param_5 == (int *)0x0) goto LAB_003c8b8c;
LAB_003c8910:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        if (param_6 == -1) {
          uVar11 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar11 = (uint)(iVar8 == -1);
            uVar20 = CONCAT44(local_50,local_44);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar20 = CONCAT44(local_50,local_44);
            }
          }
        }
        else {
          uVar11 = 0;
        }
        if (uVar11 == uVar16) goto LAB_003c8924;
      }
      else {
        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);
        uVar17 = ~((int)uVar11 >> 0x1f);
        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);
        uVar16 = 1;
        if (uVar5 <= uVar17) {
          if (uVar5 == uVar17) {
            if (uVar18 <= ~uVar11) {
              uVar16 = 0;
            }
          }
          else {
            uVar16 = 0;
          }
        }
        local_54 = uVar11 + uVar18;
        local_58 = local_58 & 0xff | uVar16;
        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;
        uVar16 = local_res8[2];
        iVar3 = iVar3 + 1;
        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;
LAB_003c8b5c:
        (**(code **)(*local_res8 + 0x28))();
        uVar20 = CONCAT44(local_50,local_44);
        uVar16 = 1;
        local_resc = 0xffffffff;
        if (local_res8 != (int *)0x0) goto LAB_003c88f0;
        if (param_5 != (int *)0x0) goto LAB_003c8910;
LAB_003c8b8c:
        if (local_48 == uVar16) {
LAB_003c8924:
          uVar16 = 1;
          goto LAB_003c8928;
        }
      }
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
        uVar11 = (uint)(char)local_resc;
        uVar16 = local_resc;
        if (bVar10) goto LAB_003c8824;
LAB_003c8bb8:
        uVar16 = uVar16 & 0xff;
        if (uVar16 - 0x30 < 10) goto LAB_003c883c;
      }
      else {
        if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar11 = (uint)*(char *)local_res8[2];
          goto LAB_003c881c;
        }
                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */
        iVar8 = (**(code **)(*local_res8 + 0x24))();
        uVar20 = CONCAT44(local_50,local_44);
        uVar11 = (uint)(char)iVar8;
        if (iVar8 != -1) goto LAB_003c881c;
        local_res8 = (int *)0x0;
        if (bVar10) goto LAB_003c8bf4;
        uVar16 = 0xff;
        uVar11 = 0xffffffff;
      }
      if (uVar16 - 0x61 < 6) {
        uVar11 = uVar11 - 0x57;
      }
      else {
        uVar11 = uVar11 - 0x37;
        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;
      }
      goto LAB_003c8844;
    }
LAB_003c8bf4:
    uVar16 = 0;
    if (local_6c != 0) goto LAB_003c8c04;
LAB_003c8934:
    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;
LAB_003c8c80:
    uVar4 = 0xffffffff;
    if (local_58 == 0) {
      if (local_38 != 0) {
        local_54 = -local_54;
        uVar5 = -(uint)(local_54 != 0) - uVar5;
      }
      *param_9 = uVar5;
      param_9[1] = local_54;
      goto LAB_003c8960;
    }
    uVar11 = 0xffffffff;
  }
  else {
    if (uVar16 == 0) {
      local_58 = 0;
      local_54 = 0;
      local_2c = &local_70;
      local_34 = (uint)(param_6 == -1);
      local_3c = iVar12 + 0x4e;
LAB_003c8e5c:
      iVar8 = local_3c;
      uVar16 = local_6c;
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      local_4c = (uint)*(byte *)(iVar12 + 0x10);
      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {
        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;
        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);
        uVar20 = CONCAT44(local_50,local_44);
        if (iVar6 == 0) goto LAB_003c8bf4;
        uVar16 = iVar6 - iVar8;
        if (0xf < (int)uVar16) {
          uVar16 = uVar16 - 6;
        }
        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {
          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);
          uVar18 = ~((int)uVar16 >> 0x1f);
          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);
          uVar11 = 1;
          if (uVar5 <= uVar18) {
            if (uVar5 == uVar18) {
              if (uVar19 <= ~uVar16) {
                uVar11 = 0;
              }
            }
            else {
              uVar11 = 0;
            }
          }
          local_54 = uVar16 + uVar19;
          local_58 = local_58 & 0xff | uVar11;
          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;
          iVar3 = iVar3 + 1;
          goto LAB_003c8f38;
        }
        uVar16 = local_res8[2];
        local_58 = uVar17;
        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;
LAB_003c8f50:
        local_res8[2] = uVar16 + 1;
LAB_003c8f5c:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        local_resc = 0xffffffff;
        uVar11 = 0;
        if ((uint)local_res8[3] <= (uint)local_res8[2]) {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar11 = uVar17;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
      }
      else {
        if (iVar3 == 0) {
          if (local_6c == 0) {
            param_9[1] = 0;
            *param_9 = 0;
            *param_8 = 4;
            goto LAB_003c8978;
          }
          uVar16 = 0;
          uVar15 = 0;
          goto LAB_003c8c0c;
        }
        local_4c = (uint)(char)iVar3;
        local_30 = local_6c + 1;
        uVar11 = 0xf;
        if (local_70 != local_40) {
          uVar11 = local_68[0];
        }
        if (uVar11 < local_6c + 1) {
          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);
          uVar20 = CONCAT44(local_50,local_44);
        }
        local_6c = local_30;
        iVar3 = 0;
        *(char *)((int)local_70 + uVar16) = (char)local_4c;
        *(undefined1 *)((int)local_70 + local_30) = 0;
LAB_003c8f38:
        uVar16 = local_res8[2];
        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;
LAB_003c8fcc:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        (**(code **)(*local_res8 + 0x28))();
        uVar20 = CONCAT44(local_50,local_44);
        local_resc = 0xffffffff;
        uVar11 = uVar17;
        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;
      }
      uVar18 = local_34;
      if (param_5 != (int *)0x0) {
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        if (param_6 == -1) {
          uVar18 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar20 = CONCAT44(local_50,local_44);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar18 = uVar17;
              uVar20 = CONCAT44(local_50,local_44);
            }
            else {
              uVar18 = 0;
            }
          }
        }
        else {
          uVar18 = 0;
        }
      }
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      uVar16 = uVar17;
      if (uVar11 != uVar18) {
        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
          uVar11 = (uint)(char)local_resc;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar11 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar11 = (uint)(char)iVar8;
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar11 = 0xffffffff;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
        goto LAB_003c8e5c;
      }
    }
    else {
      local_54 = 0;
      uVar5 = 0;
      local_58 = 0;
    }
LAB_003c8928:
    if (local_6c == 0) goto LAB_003c8934;
LAB_003c8c04:
    uVar15 = (undefined1)iVar3;
    local_4c = 0;
LAB_003c8c0c:
    uVar4 = local_6c;
    local_50 = (uint)(uVar20 >> 0x20);
    local_44 = (uint)uVar20;
    uVar17 = local_6c + 1;
    uVar11 = local_68[0];
    if (local_70 == local_40) {
      uVar11 = 0xf;
    }
    if (uVar11 < uVar17) {
      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);
      uVar20 = CONCAT44(local_50,local_44);
    }
    local_50 = (uint)(uVar20 >> 0x20);
    local_44 = (uint)uVar20;
    *(undefined1 *)((int)local_70 + uVar4) = uVar15;
    *(undefined1 *)((int)local_70 + uVar17) = 0;
    local_6c = uVar17;
    iVar12 = std::__verify_grouping
                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);
    uVar20 = CONCAT44(local_50,local_44);
    if (iVar12 == 0) {
      *param_8 = 4;
    }
    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;
LAB_003c8944:
    uVar4 = 0;
    uVar11 = 0;
  }
  param_9[1] = uVar4;
  *param_9 = uVar11;
  *param_8 = 4;
LAB_003c8960:
  if (uVar16 != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_003c8978:
  local_50 = (uint)(uVar20 >> 0x20);
  local_44 = (uint)uVar20;
  *param_1 = local_res8;
  param_1[1] = local_resc;
  if (local_70 != local_40) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return param_1;
LAB_003c93b4:
  cVar9 = *(char *)(iVar12 + 0x10);
  uVar16 = 0;
  goto joined_r0x003c8b00;
}


lui gp,0x10
addiu gp,gp,0xc3c
addu gp,gp,t9
addiu sp,sp,-0x90
lw t9,-0x65cc(gp)
sw s0,0x68(sp)
sw a0,0x90(sp)
sw gp,0x18(sp)
sw s7,0x84(sp)
sw s4,0x78(sp)
sw s3,0x74(sp)
sw s2,0x70(sp)
sw s1,0x6c(sp)
sw ra,0x8c(sp)
sw s8,0x88(sp)
sw s6,0x80(sp)
sw s5,0x7c(sp)
sw a2,0x98(sp)
sw a3,0x9c(sp)
lw s0,0xa8(sp)
lw a0,-0x5f48(gp)
lw s3,0xa0(sp)
jalr t9
_lw s7,0xa4(sp)
lw v1,0x6c(s0)
or s2,v0,zero
sll v0,v0,0x2
lw v1,0xc(v1)
addu s4,v1,v0
lw s1,0x0(s4)
beq s1,zero,0x003c9224
_lw gp,0x18(sp)
lw a2,0xc(s0)
li v0,0x40
andi s8,a2,0x4a
beq s8,v0,0x003c90a4
_li v1,0x10
lw a0,0x98(sp)
li v0,0xa
lw s0,0x9c(sp)
xori s5,s8,0x8
movz v0,v1,s5
beq a0,zero,0x003c90b4
_or s5,v0,zero
li v0,-0x1
beq s0,v0,0x003c89d4
_nop
or s2,zero,zero
beq s3,zero,0x003c90c4
_addiu v1,s7,0x1
li v0,-0x1
beq s7,v0,0x003c9114
_nop
or v1,zero,zero
beq v1,s2,0x003c90d0
_nop
lw a0,0x98(sp)
beq a0,zero,0x003c86fc
_lw s0,0x9c(sp)
li v0,-0x1
beq s0,v0,0x003c91bc
_nop
seb s0,s0
lb v1,0x4a(s1)
lbu v0,0x10(s1)
xor a0,v1,s0
sltiu a0,a0,0x1
beq v1,s0,0x003c8724
_sw a0,0x58(sp)
lb v1,0x4b(s1)
bne v1,s0,0x003c8a0c
_nop
beq v0,zero,0x003c8738
_nop
lb v1,0x25(s1)
beq v1,s0,0x003c8a14
_addiu s2,s7,0x1
lb v1,0x24(s1)
beq v1,s0,0x003c8a10
_lw a0,0x98(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c9350
_addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x9c(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c93cc
_or s2,zero,zero
beq s3,zero,0x003c937c
_li v0,-0x1
beq s7,v0,0x003c91ec
_nop
or v1,zero,zero
bne v1,s2,0x003c932c
_li v1,0x10
lbu v0,0x10(s1)
li s2,0x1
or s6,zero,zero
beq s5,v1,0x003c8b08
_or s4,zero,zero
addiu v1,sp,0x28
sw s5,0x48(sp)
sw zero,0x24(sp)
sw v1,0x50(sp)
sb zero,0x28(sp)
bne v0,zero,0x003c8b28
_sw v1,0x20(sp)
lw t9,-0x758c(gp)
li a1,-0x1
li a0,-0x1
sra a2,s5,0x1f
bal 0x003e7e30
_or a3,s5,zero
lbu s8,0x64(s1)
lw gp,0x18(sp)
sw v0,0x40(sp)
bne s8,zero,0x003c8e34
_sw v1,0x4c(sp)
bne s2,zero,0x003c949c
_addiu v0,s7,0x1
lw a0,0x48(sp)
sw zero,0x38(sp)
sltiu v0,v0,0x1
sw zero,0x3c(sp)
addiu v1,a0,0x30
sw v0,0x48(sp)
sltiu s8,a0,0xb
seb v1,v1
sw v1,0x44(sp)
beq s8,zero,0x003c8bb8
_andi v1,s0,0xff
slti v0,s0,0x30
bne v0,zero,0x003c8bf4
_lw v0,0x44(sp)
slt v0,s0,v0
beq v0,zero,0x003c8bf4
_nop
addiu s0,s0,-0x30
lw v1,0x40(sp)
sltu v0,v1,s2
bne v0,zero,0x003c8b40
_lw a0,0x98(sp)
bne s2,v1,0x003c886c
_lw v0,0x3c(sp)
lw v1,0x4c(sp)
sltu v0,v1,v0
bne v0,zero,0x003c8b44
_li v0,0x1
lw v0,0x3c(sp)
nor a3,zero,s0
multu s5,v0
mfhi t0
mflo t1
mul v0,s2,s5
sra s2,s0,0x1f
nor a1,zero,s2
addu t0,v0,t0
sltu a2,a1,t0
bne a2,zero,0x003c88a4
_li a0,0x1
beq t0,a1,0x003c8be0
_nop
or a0,zero,zero
lw v0,0x38(sp)
addu v1,s0,t1
addu s2,s2,t0
sltu s0,v1,s0
sw v1,0x3c(sp)
or a0,v0,a0
andi v0,a0,0xff
lw a0,0x98(sp)
sw v0,0x38(sp)
addu s2,s0,s2
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c8b5c
_addiu s6,s6,0x1
addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x9c(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c92a0
_or s0,zero,zero
beq s3,zero,0x003c8b8c
_lw v1,0x48(sp)
li v0,-0x1
beq s7,v0,0x003c8dd0
_nop
or v1,zero,zero
bne v1,s0,0x003c8b94
_nop
li s8,0x1
lw s0,0x24(sp)
bne s0,zero,0x003c8c04
_lw a0,0x20(sp)
bne s6,zero,0x003c8c80
_lw v0,0x38(sp)
bne s4,zero,0x003c8c80
_lw a1,0xb0(sp)
or v1,zero,zero
or v0,zero,zero
sw v1,0x4(a1)
sw v0,0x0(a1)
li v0,0x4
lw v1,0xac(sp)
sw v0,0x0(v1)
beq s8,zero,0x003c8978
_lw v0,0xac(sp)
lw v1,0xac(sp)
lw v0,0x0(v0)
ori v0,v0,0x2
sw v0,0x0(v1)
lw v1,0x90(sp)
lw v0,0x98(sp)
sw v0,0x0(v1)
lw v0,0x9c(sp)
sw v0,0x4(v1)
lw v0,0x50(sp)
beq a0,v0,0x003c89a0
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x8c(sp)
lw v0,0x90(sp)
lw s8,0x88(sp)
lw s7,0x84(sp)
lw s6,0x80(sp)
lw s5,0x7c(sp)
lw s4,0x78(sp)
lw s3,0x74(sp)
lw s2,0x70(sp)
lw s1,0x6c(sp)
lw s0,0x68(sp)
jr ra
_addiu sp,sp,0x90
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
bne v0,zero,0x003c86c4
_or s2,zero,zero
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
bne v0,s0,0x003c86c4
_lw gp,0x18(sp)
sw zero,0x98(sp)
b 0x003c86c4
_li s2,0x1
sw zero,0x58(sp)
addiu s2,s7,0x1
or s6,zero,zero
sltiu s2,s2,0x1
or s4,zero,zero
sw s2,0x38(sp)
or s2,s7,zero
or s7,s8,zero
beq v0,zero,0x003c8a40
_nop
lb v1,0x25(s1)
beq v1,s0,0x003c8e28
_nop
lb v1,0x24(s1)
beq v1,s0,0x003c8e28
_nop
lb v1,0x4e(s1)
beq v1,s0,0x003c8d10
_nop
beq s4,zero,0x003c8e28
_nop
lb v1,0x4c(s1)
beq v1,s0,0x003c8a78
_nop
lb v1,0x4d(s1)
bne v1,s0,0x003c92f0
_nop
beq s7,zero,0x003c8c94
_lw a0,0x98(sp)
li v1,0x10
bne s5,v1,0x003c93a8
_li s4,0x1
or s6,zero,zero
or s4,zero,zero
lw a0,0x98(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c8cb0
_nop
addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x9c(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c90ec
_or s8,zero,zero
beq s3,zero,0x003c8cdc
_lw v1,0x38(sp)
li v0,-0x1
beq s2,v0,0x003c8d50
_nop
or v1,zero,zero
bne v1,s8,0x003c8ce4
_nop
lbu v0,0x10(s1)
or s7,s2,zero
li s2,0x1
li v1,0x10
bne s5,v1,0x003c87ac
_addiu v1,sp,0x28
li v1,0x16
sw zero,0x24(sp)
sb zero,0x28(sp)
sw v1,0x48(sp)
addiu v1,sp,0x28
sw v1,0x50(sp)
beq v0,zero,0x003c87c4
_sw v1,0x20(sp)
lw t9,-0x6de8(gp)
li a1,0x20
jalr t9
_addiu a0,sp,0x20
b 0x003c87c4
_lw gp,0x18(sp)
li v0,0x1
sw v0,0x38(sp)
lw v1,0xc(a0)
lw v0,0x8(a0)
sltu v1,v0,v1
bne v1,zero,0x003c88e4
_addiu v0,v0,0x1
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
lw a0,0x98(sp)
li v0,-0x1
lw gp,0x18(sp)
li s0,0x1
bne a0,zero,0x003c88f0
_sw v0,0x9c(sp)
bne s3,zero,0x003c8910
_lw v1,0x48(sp)
beq v1,s0,0x003c8924
_nop
lw a0,0x98(sp)
beq a0,zero,0x003c8bac
_lw s0,0x9c(sp)
li v0,-0x1
beq s0,v0,0x003c8d88
_nop
bne s8,zero,0x003c8824
_seb s0,s0
andi v1,s0,0xff
addiu v0,v1,-0x30
sltiu v0,v0,0xa
bne v0,zero,0x003c883c
_nop
addiu v0,v1,-0x61
sltiu v0,v0,0x6
beq v0,zero,0x003c8e14
_addiu v1,v1,-0x41
b 0x003c8840
_addiu s0,s0,-0x57
sltu a3,a3,t1
bne a3,zero,0x003c88a8
_lw v0,0x38(sp)
b 0x003c88a8
_or a0,zero,zero
lw s0,0x24(sp)
or s8,zero,zero
beq s0,zero,0x003c8934
_lw a0,0x20(sp)
seb s7,s6
sw zero,0x44(sp)
lw v0,0x50(sp)
beq a0,v0,0x003c93c4
_addiu s3,s0,0x1
lw v0,0x28(sp)
sltu v0,v0,s3
bne v0,zero,0x003c9300
_addiu s5,sp,0x20
addu s0,a0,s0
lw t9,-0x60a8(gp)
or a2,s5,zero
sb s7,0x0(s0)
sw s3,0x24(sp)
lw v0,0x20(sp)
addu s3,v0,s3
sb zero,0x0(s3)
lw a1,0xc(s1)
bal 0x003e6968
_lw a0,0x8(s1)
bne v0,zero,0x003c8c68
_lw gp,0x18(sp)
lw v1,0xac(sp)
li v0,0x4
sw v0,0x0(v1)
beq s6,zero,0x003c9184
_lw a0,0x20(sp)
lw v0,0x44(sp)
bne v0,zero,0x003c8944
_lw a1,0xb0(sp)
lw v0,0x38(sp)
beq v0,zero,0x003c914c
_li v1,-0x1
lw a1,0xb0(sp)
b 0x003c894c
_li v0,-0x1
or s6,zero,zero
or s4,zero,zero
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
bne v1,zero,0x003c8aac
_li s5,0x10
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_li s8,0x1
li v0,-0x1
lw a0,0x98(sp)
lw gp,0x18(sp)
bne a0,zero,0x003c8abc
_sw v0,0x9c(sp)
bne s3,zero,0x003c8adc
_lw v1,0x38(sp)
beq v1,s8,0x003c8af0
_nop
lw a0,0x98(sp)
beq a0,zero,0x003c8cfc
_lw s0,0x9c(sp)
li v0,-0x1
beq s0,v0,0x003c8d34
_nop
seb s0,s0
beq s4,zero,0x003c93b4
_nop
b 0x003c8a2c
_lbu v0,0x10(s1)
beq s4,zero,0x003c8da4
_li v1,0xa
bne s5,v1,0x003c8a60
_nop
bne s7,zero,0x003c8db8
_nop
or s6,zero,zero
b 0x003c8a94
_li s5,0x8
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c9388
_nop
b 0x003c8d00
_lb s0,0x0(v1)
lw v0,0x8(s3)
lw a0,0xc(s3)
sltu v0,v0,a0
bne v0,zero,0x003c8ae8
_or v1,zero,zero
lw v0,0x0(s3)
lw t9,0x24(v0)
jalr t9
_or a0,s3,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
b 0x003c8ae8
_movz s3,zero,v0
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c93f4
_nop
b 0x003c881c
_lb s0,0x0(v1)
beq s7,zero,0x003c8e08
_li s4,0x1
li v0,0x8
beq s5,v0,0x003c8dc4
_nop
addiu s6,s6,0x1
b 0x003c8a94
_li s4,0x1
or s6,zero,zero
b 0x003c8a94
_li s4,0x1
lw v0,0x8(s3)
lw a0,0xc(s3)
sltu v0,v0,a0
bne v0,zero,0x003c891c
_or v1,zero,zero
lw v0,0x0(s3)
lw t9,0x24(v0)
jalr t9
_or a0,s3,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
b 0x003c891c
_movz s3,zero,v0
or s6,zero,zero
b 0x003c8a94
_li s5,0x8
sltiu v1,v1,0x6
beq v1,zero,0x003c8bf4
_addiu s0,s0,-0x37
b 0x003c8844
_lw v1,0x40(sp)
or s7,s2,zero
b 0x003c8afc
_or s2,zero,zero
bne s2,zero,0x003c94b0
_addiu v1,s1,0x4e
sw zero,0x38(sp)
addiu v0,s7,0x1
sw zero,0x3c(sp)
sw v1,0x54(sp)
addiu v1,sp,0x20
sltiu v0,v0,0x1
sw v1,0x64(sp)
sw v0,0x5c(sp)
lbu v0,0x10(s1)
beq v0,zero,0x003c8e74
_sw v0,0x44(sp)
lb v0,0x25(s1)
beq v0,s0,0x003c9040
_nop
lb v0,0x24(s1)
beq v0,s0,0x003c8bf4
_or a1,s0,zero
lw s0,0x54(sp)
lw t9,-0x3778(gp)
lw a2,0x48(sp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x003c8bf4
_lw gp,0x18(sp)
subu v0,v0,s0
slti v1,v0,0x10
bne v1,zero,0x003c8eb0
_lw a0,0x40(sp)
addiu v0,v0,-0x6
sltu v1,a0,s2
bne v1,zero,0x003c8fb0
_nop
bne s2,a0,0x003c8ed8
_lw v1,0x3c(sp)
lw a0,0x4c(sp)
sltu v1,a0,v1
bne v1,zero,0x003c8fb4
_lw a0,0x98(sp)
lw v1,0x3c(sp)
nor t0,zero,v0
multu s5,v1
mfhi t2
mflo t3
mul v1,s2,s5
sra s2,v0,0x1f
nor a2,zero,s2
addu t2,v1,t2
sltu a3,a2,t2
bne a3,zero,0x003c8f10
_li v1,0x1
beq t2,a2,0x003c91d8
_nop
or v1,zero,zero
lw a0,0x38(sp)
addu a1,v0,t3
addu s2,s2,t2
sltu v0,a1,v0
sw a1,0x3c(sp)
or v1,a0,v1
andi v1,v1,0xff
addu s2,v0,s2
sw v1,0x38(sp)
addiu s6,s6,0x1
lw a0,0x98(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c8fcc
_addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x9c(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c9428
_or s0,zero,zero
beq s3,zero,0x003c8f88
_lw v1,0x5c(sp)
li v0,-0x1
beq s7,v0,0x003c9004
_nop
or v1,zero,zero
beq s0,v1,0x003c8928
_nop
lw a0,0x98(sp)
beq a0,zero,0x003c8fa8
_lw s0,0x9c(sp)
li v0,-0x1
beq s0,v0,0x003c91a0
_nop
b 0x003c8e5c
_seb s0,s0
lw a0,0x98(sp)
sw s8,0x38(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
bne v1,zero,0x003c8f50
_addiu v0,v0,0x1
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
lw a0,0x98(sp)
li v0,-0x1
lw gp,0x18(sp)
or s0,s8,zero
bne a0,zero,0x003c8f5c
_sw v0,0x9c(sp)
bne s3,zero,0x003c8f7c
_lw v1,0x5c(sp)
b 0x003c8f88
_nop
lw v0,0x8(s3)
lw a0,0xc(s3)
sltu v0,v0,a0
bne v0,zero,0x003c8f88
_or v1,zero,zero
lw v0,0x0(s3)
lw t9,0x24(v0)
jalr t9
_or a0,s3,zero
nor v0,zero,v0
lw gp,0x18(sp)
or v1,s8,zero
movz s3,zero,v0
b 0x003c8f88
_movn v1,zero,v0
lw s0,0x24(sp)
beq s6,zero,0x003c94d0
_lw a0,0x20(sp)
seb v0,s6
sw v0,0x44(sp)
addiu v0,s0,0x1
sw v0,0x60(sp)
lw v0,0x50(sp)
beq a0,v0,0x003c906c
_li v0,0xf
lw v0,0x28(sp)
addiu v1,s0,0x1
sltu v0,v0,v1
bne v0,zero,0x003c92c8
_li v0,0x1
lw v0,0x44(sp)
addu s0,a0,s0
lw v1,0x60(sp)
or s6,zero,zero
sb v0,0x0(s0)
lw v0,0x20(sp)
sw v1,0x24(sp)
addu v0,v0,v1
b 0x003c8f38
_sb zero,0x0(v0)
lw a0,0x98(sp)
li s5,0x8
bne a0,zero,0x003c86b4
_lw s0,0x9c(sp)
addiu s0,s0,0x1
bne s3,zero,0x003c86cc
_sltiu s2,s0,0x1
addiu v1,s7,0x1
sltiu v1,v1,0x1
bne v1,s2,0x003c86e4
_nop
lbu v0,0x10(s1)
li s2,0x1
sw zero,0x58(sp)
or s0,zero,zero
or s6,zero,zero
b 0x003c8afc
_or s4,zero,zero
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
bne v0,v1,0x003c8ad0
_lw gp,0x18(sp)
li s8,0x1
b 0x003c8ad0
_sw zero,0x98(sp)
lw v0,0x8(s3)
lw a0,0xc(s3)
sltu v0,v0,a0
bne v0,zero,0x003c86dc
_or v1,zero,zero
lw v0,0x0(s3)
lw t9,0x24(v0)
jalr t9
_or a0,s3,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
b 0x003c86dc
_movz s3,zero,v0
lw v0,0x58(sp)
beq v0,zero,0x003c9174
_lw v0,0xb0(sp)
lw v0,0x3c(sp)
subu s2,zero,s2
subu v0,zero,v0
sltu v1,zero,v0
sw v0,0x3c(sp)
subu s2,s2,v1
lw v0,0xb0(sp)
lw v1,0x3c(sp)
sw s2,0x0(v0)
b 0x003c8960
_sw v1,0x4(v0)
bne s4,zero,0x003c8c74
_lw v0,0x44(sp)
lw v0,0x24(sp)
bne v0,zero,0x003c8c74
_lw v0,0x44(sp)
b 0x003c8944
_lw a1,0xb0(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c9450
_nop
b 0x003c8e5c
_lb s0,0x0(v1)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c947c
_nop
b 0x003c8700
_lb s0,0x0(v1)
sltu t0,t0,t3
bne t0,zero,0x003c8f14
_lw a0,0x38(sp)
b 0x003c8f14
_or v1,zero,zero
lw v0,0x8(s3)
lw a0,0xc(s3)
sltu v0,v0,a0
bne v0,zero,0x003c878c
_or v1,zero,zero
lw v0,0x0(s3)
lw t9,0x24(v0)
jalr t9
_or a0,s3,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
b 0x003c878c
_movz s3,zero,v0
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x68
lw gp,0x18(sp)
or s1,v0,zero
sw zero,0x4(v0)
or a0,v0,zero
sw zero,0x8(v0)
addiu a1,s0,0x6c
sw zero,0xc(v0)
lw v0,-0x7e90(gp)
lw t9,-0x6500(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)
sh zero,0x24(s1)
jalr t9
_sb zero,0x64(s1)
lw gp,0x18(sp)
or a1,s1,zero
lw a0,0x6c(s0)
lw t9,-0x6528(gp)
jalr t9
_or a2,s2,zero
lw gp,0x18(sp)
b 0x003c8684
_lw s1,0x0(s4)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
bne v0,v1,0x003c8904
_lw gp,0x18(sp)
li s0,0x1
b 0x003c8904
_sw zero,0x98(sp)
lw t9,-0x71b0(gp)
lw a0,0x64(sp)
or a3,zero,zero
or a2,zero,zero
sw v0,0x10(sp)
jalr t9
_or a1,s0,zero
lw gp,0x18(sp)
b 0x003c907c
_lw a0,0x20(sp)
or s7,s2,zero
li s4,0x1
b 0x003c8afc
_or s2,zero,zero
lw t9,-0x71b0(gp)
li v0,0x1
or a3,zero,zero
or a2,zero,zero
sw v0,0x10(sp)
or a1,s0,zero
jalr t9
_or a0,s5,zero
lw gp,0x18(sp)
b 0x003c8c28
_lw a0,0x20(sp)
lw t9,-0x6054(gp)
addiu a0,sp,0x98
addiu t9,t9,0x5e4
bal 0x003c05e4
_lw a1,0x9c(sp)
seb s0,v0
lw gp,0x18(sp)
b 0x003c8a10
_lbu v0,0x10(s1)
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_li s2,0x1
li v0,-0x1
lw a0,0x98(sp)
lw gp,0x18(sp)
beq a0,zero,0x003c8778
_sw v0,0x9c(sp)
b 0x003c8768
_lw v0,0x8(a0)
addiu v1,s7,0x1
b 0x003c878c
_sltiu v1,v1,0x1
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
beq v0,s0,0x003c94c4
_lw gp,0x18(sp)
b 0x003c8d00
_seb s0,v0
or s7,s2,zero
b 0x003c87a8
_or s2,zero,zero
or s7,s2,zero
lbu v0,0x10(s1)
b 0x003c8afc
_or s2,zero,zero
b 0x003c8c1c
_li v0,0xf
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
bne v0,v1,0x003c8778
_lw gp,0x18(sp)
li s2,0x1
b 0x003c8778
_sw zero,0x98(sp)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
lw gp,0x18(sp)
bne v0,v1,0x003c881c
_seb s0,v0
bne s8,zero,0x003c8bf4
_sw zero,0x98(sp)
li v1,0xff
b 0x003c8bc8
_li s0,-0x1
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
bne v0,v1,0x003c8f70
_lw gp,0x18(sp)
sw zero,0x98(sp)
b 0x003c8f70
_or s0,s8,zero
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
lw gp,0x18(sp)
bne v0,v1,0x003c8e5c
_seb s0,v0
sw zero,0x98(sp)
b 0x003c8e5c
_li s0,-0x1
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
beq v0,s0,0x003c9504
_lw gp,0x18(sp)
b 0x003c8700
_seb s0,v0
or s8,s2,zero
sw zero,0x38(sp)
or s2,zero,zero
b 0x003c8928
_sw zero,0x3c(sp)
or s8,s2,zero
sw zero,0x3c(sp)
or s2,zero,zero
b 0x003c8928
_sw zero,0x38(sp)
li s0,-0x1
b 0x003c8d00
_sw zero,0x98(sp)
bne s0,zero,0x003c94f8
_lw a1,0xb0(sp)
or v1,zero,zero
or v0,zero,zero
sw v1,0x4(a1)
sw v0,0x0(a1)
li v0,0x4
lw v1,0xac(sp)
b 0x003c8978
_sw v0,0x0(v1)
or s8,zero,zero
b 0x003c8c0c
_or s7,zero,zero
li s0,-0x1
b 0x003c8700
_sw zero,0x98(sp)
(translation_unit "/* WARNING: Removing unreachable block (ram,0x003c8858) */\n\nundefined4 *\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}\n\n" comment (function_definition "undefined4 *\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}" type_identifier (pointer_declarator "*\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" * (function_declarator "FUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" ( (parameter_declaration "undefined4 *param_1" type_identifier (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 "uint param_4" type_identifier 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  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "ulonglong uVar20;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "uint local_resc;" type_identifier identifier ;) (declaration "uint *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68 [4];" type_identifier (array_declarator "local_68 [4]" identifier [ number_literal ]) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (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 identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * 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_004c2c74)(PTR_id_004c32f8);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" identifier = (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" ( (pointer_expression "*(code *)PTR__M_id_004c2c74" * (cast_expression "(code *)PTR__M_id_004c2c74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_004c32f8)" ( identifier )))) ;) (expression_statement "piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar14 = (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 "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar12 == 0) {\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" { comment (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x68)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2 = PTR__M_cache_004c2d40;" (assignment_expression "puVar2 = PTR__M_cache_004c2d40" identifier = identifier) ;) (expression_statement "puVar1 = PTR_vtable_004c13b0;" (assignment_expression "puVar1 = PTR_vtable_004c13b0" identifier = identifier) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = puVar1 + 8;" (assignment_expression "*puVar7 = puVar1 + 8" (pointer_expression "*puVar7" * identifier) = (binary_expression "puVar1 + 8" identifier + number_literal)) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar7 + 9) = 0;" (assignment_expression "*(undefined2 *)(puVar7 + 9) = 0" (pointer_expression "*(undefined2 *)(puVar7 + 9)" * (cast_expression "(undefined2 *)(puVar7 + 9)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 9)" ( (binary_expression "puVar7 + 9" identifier + number_literal) )))) = number_literal) ;) comment (expression_statement "*(undefined1 *)(puVar7 + 0x19) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x19) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x19)" * (cast_expression "(undefined1 *)(puVar7 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x19)" ( (binary_expression "puVar7 + 0x19" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar7,param_7 + 0x6c);" (call_expression "(*(code *)puVar2)(puVar7,param_7 + 0x6c)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7,param_7 + 0x6c)" ( identifier , (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004c2d18)" ( (pointer_expression "*(code *)PTR__M_install_cache_004c2d18" * (cast_expression "(code *)PTR__M_install_cache_004c2d18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_7 + 0x6c),puVar7,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 "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" identifier = (pointer_expression "*piVar14" * 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    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0x40)" ( (binary_expression "uVar16 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) goto LAB_003c90b4;" 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_003c90b4;" goto statement_identifier ;)) (labeled_statement "LAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" statement_identifier : (if_statement "if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" if (parenthesized_expression "(local_resc == 0xffffffff)" ( (binary_expression "local_resc == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" if (parenthesized_expression "(((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1))" ( (binary_expression "((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" ( (comma_expression "iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1" (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 "()" ( )))) , (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) ;) })))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c86cc;" if (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)) )) (goto_statement "goto LAB_003c86cc;" goto statement_identifier ;)) (labeled_statement "LAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" if (parenthesized_expression "((param_6 == -1) == bVar13)" ( (binary_expression "(param_6 == -1) == bVar13" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c90d0;" goto statement_identifier ;))) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\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) ;) })) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c86b4;" 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_003c86b4;" goto statement_identifier ;)) (labeled_statement "LAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;" statement_identifier : (expression_statement "bVar13 = local_resc == 0xffffffff;" (assignment_expression "bVar13 = local_resc == 0xffffffff" identifier = (binary_expression "local_resc == 0xffffffff" identifier == number_literal)) ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c90c4;" if (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)) )) (goto_statement "goto LAB_003c90c4;" goto statement_identifier ;)) (labeled_statement "LAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" statement_identifier : (if_statement "if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\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 )))) ;) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" 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      bVar10 = false;\n    }" else (compound_statement "{\n      bVar10 = false;\n    }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) })))) (if_statement "if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" if (parenthesized_expression "(bVar10 == bVar13)" ( (binary_expression "bVar10 == bVar13" identifier == identifier) )) (compound_statement "{\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" { (labeled_statement "LAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 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 "uVar11 = 0;" (assignment_expression "uVar11 = 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) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) })) }))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n    uVar11 = (uint)(char)local_resc;\n  }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar11 = (uint)*(char *)local_res8[2];\n  }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" else (compound_statement "{\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\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      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (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      uVar11 = (uint)(char)iVar3;\n    }" else (compound_statement "{\n      uVar11 = (uint)(char)iVar3;\n    }" { (expression_statement "uVar11 = (uint)(char)iVar3;" (assignment_expression "uVar11 = (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 "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" identifier = (call_expression "(uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*(char *)(iVar12 + 0x4a) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4a) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4a)" * (cast_expression "(char *)(iVar12 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4a)" ( (binary_expression "iVar12 + 0x4a" identifier + number_literal) ))))) == identifier) )))) ;) (if_statement "if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" if (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11))" ( (binary_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4a) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4a)" * (cast_expression "(char *)(iVar12 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4a)" ( (binary_expression "iVar12 + 0x4a" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x4b) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4b) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4b)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4b)" * (cast_expression "(char *)(iVar12 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4b)" ( (binary_expression "iVar12 + 0x4b" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c8a14;" goto statement_identifier ;) })) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (goto_statement "goto LAB_003c8a14;" goto statement_identifier ;)) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }" { (expression_statement "local_res8[2] = local_res8[2] + 1;" (assignment_expression "local_res8[2] = local_res8[2] + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "local_res8[2] + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_003c8768:\n    local_resc = 0xffffffff;" statement_identifier : (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;)) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" if (parenthesized_expression "(((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       )" ( (binary_expression "((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)local_res8[3] <= uVar5)" ( (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) && (parenthesized_expression "(iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" ( (comma_expression "iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1" (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 "()" ( )))) , (binary_expression "iVar3 == -1" identifier == number_literal)) ))) )) (compound_statement "{\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (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    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }" else (compound_statement "{\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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 = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }" { (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_003c8768;" goto statement_identifier ;) })) }))) (if_statement "if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" if (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)) )) (compound_statement "{\n    bVar10 = param_6 == -1;\n  }" { (expression_statement "bVar10 = param_6 == -1;" (assignment_expression "bVar10 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" else (if_statement "if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\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 )))) ;) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" 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    bVar10 = false;\n  }" else (compound_statement "{\n    bVar10 = false;\n  }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) }))))) (if_statement "if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" if (parenthesized_expression "(bVar10 != bVar13)" ( (binary_expression "bVar10 != bVar13" identifier != identifier) )) (compound_statement "{\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" { (expression_statement "cVar9 = FUN_003c05e4(&local_res8,local_resc);" (assignment_expression "cVar9 = FUN_003c05e4(&local_res8,local_resc)" identifier = (call_expression "FUN_003c05e4(&local_res8,local_resc)" identifier (argument_list "(&local_res8,local_resc)" ( (pointer_expression "&local_res8" & identifier) , identifier )))) ;) (expression_statement "uVar11 = (uint)cVar9;" (assignment_expression "uVar11 = (uint)cVar9" identifier = (cast_expression "(uint)cVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_003c8a14:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "local_58 = (uint)(param_6 == -1);" (assignment_expression "local_58 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (do_statement "do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );" do (compound_statement "{\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    }" { (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (compound_statement "{\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" { (labeled_statement "LAB_003c8e28:\n        uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) })) (if_statement "if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" if (parenthesized_expression "((int)*(char *)(iVar12 + 0x4e) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4e) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4e)" * (cast_expression "(char *)(iVar12 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4e)" ( (binary_expression "iVar12 + 0x4e" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }" { (if_statement "if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }\n        }" { (if_statement "if (uVar4 != 10) goto LAB_003c8a60;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c8a60;" goto statement_identifier ;)) (if_statement "if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" else (compound_statement "{\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" { (labeled_statement "LAB_003c8db8:\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_003c8db8;\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_003c8db8;\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_003c8db8;\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" else (compound_statement "{\n            if (uVar4 != 8) goto LAB_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" { (if_statement "if (uVar4 != 8) goto LAB_003c8db8;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_003c8db8;" 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_003c8a94:\n        uVar5 = local_res8[2];" statement_identifier : (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;" if (parenthesized_expression "(uVar5 < (uint)local_res8[3])" ( (binary_expression "uVar5 < (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_003c8aac;" goto statement_identifier ;)) (labeled_statement "LAB_003c8cb0:\n        uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) (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 = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c8abc;" 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_003c8abc;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8adc;" if (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)) )) (goto_statement "goto LAB_003c8adc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" statement_identifier : (if_statement "if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" if (parenthesized_expression "(local_58 == uVar5)" ( (binary_expression "local_58 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" { (labeled_statement "LAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) }))) }) (else_clause "else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" else (compound_statement "{\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" { (if_statement "if (!bVar13) goto LAB_003c8e28;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_003c8e28;" goto statement_identifier ;)) (labeled_statement "LAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" statement_identifier : (if_statement "if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" if (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))" ( (binary_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4c) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4c)" * (cast_expression "(char *)(iVar12 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4c)" ( (binary_expression "iVar12 + 0x4c" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x4d) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4d) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4d)" * (cast_expression "(char *)(iVar12 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4d)" ( (binary_expression "iVar12 + 0x4d" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) }))) (if_statement "if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (if_statement "if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\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_003c8a94;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;) (goto_statement "goto joined_r0x003c87bc;" 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 "uVar5 = local_res8[2];" (assignment_expression "uVar5 = 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] <= uVar5) goto LAB_003c8cb0;" if (parenthesized_expression "((uint)local_res8[3] <= uVar5)" ( (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c8cb0;" goto statement_identifier ;)) (labeled_statement "LAB_003c8aac:\n        local_res8[2] = uVar5 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar5 + 1;" (assignment_expression "local_res8[2] = uVar5 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c8abc:\n        local_resc = 0xffffffff;" statement_identifier : (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;)) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" if (parenthesized_expression "(((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1))" ( (binary_expression "((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" ( (comma_expression "iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1" (assignment_expression "iVar8 = (**(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 "()" ( )))) , (binary_expression "iVar8 == -1" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (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) goto LAB_003c8cdc;" if (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)) )) (goto_statement "goto LAB_003c8cdc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" statement_identifier : (if_statement "if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 = (uint)(iVar8 == -1);" (assignment_expression "uVar17 = (uint)(iVar8 == -1)" identifier = (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -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          uVar17 = 0;\n        }" else (compound_statement "{\n          uVar17 = 0;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) })))) (if_statement "if (uVar17 == uVar5) goto LAB_003c8af0;" if (parenthesized_expression "(uVar17 == uVar5)" ( (binary_expression "uVar17 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_003c8af0;" goto statement_identifier ;)) }))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        uVar11 = (uint)(char)local_resc;\n      }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        uVar11 = (uint)*(char *)local_res8[2];\n      }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" else (compound_statement "{\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (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          uVar11 = (uint)(char)iVar8;\n        }" else (compound_statement "{\n          uVar11 = (uint)(char)iVar8;\n        }" { (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }))) }))))) (if_statement "if (!bVar13) goto LAB_003c93b4;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_003c93b4;" goto statement_identifier ;)) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 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) ;) (labeled_statement "joined_r0x003c8b00:\n  local_48 = uVar4;" statement_identifier : (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;)) (if_statement "if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n    local_48 = 0x16;\n  }" { (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) })) (labeled_statement "joined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;" statement_identifier : (expression_statement "local_68[0] = local_68[0] & 0xffffff;" (assignment_expression "local_68[0] = local_68[0] & 0xffffff" (subscript_expression "local_68[0]" identifier [ number_literal ]) = (binary_expression "local_68[0] & 0xffffff" (subscript_expression "local_68[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" identifier = identifier) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (if_statement "if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" { (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" identifier = identifier) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) comment (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_70,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_70,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004c2458)" ( (pointer_expression "*(code *)PTR_reserve_004c2458" * (cast_expression "(code *)PTR_reserve_004c2458" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_70,0x20)" ( (pointer_expression "&local_70" & identifier) , number_literal ))) ;) })) (expression_statement "uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);" (assignment_expression "uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4)" identifier = (call_expression "FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4)" identifier (argument_list "(0xffffffff,0xffffffff,0,uVar4)" ( number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar12 + 100);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar12 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar12 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar12 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 100)" ( (binary_expression "iVar12 + 100" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar16;" (assignment_expression "uVar5 = uVar16" identifier = identifier) ;) (if_statement "if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }" { (if_statement "if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c8928;" goto statement_identifier ;) })) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = local_48 < 0xb;" (assignment_expression "bVar10 = local_48 < 0xb" identifier = (binary_expression "local_48 < 0xb" identifier < number_literal)) ;) (expression_statement "local_4c = (uint)(char)((char)local_48 + '0');" (assignment_expression "local_4c = (uint)(char)((char)local_48 + '0')" identifier = (call_expression "(uint)(char)((char)local_48 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "((char)local_48 + '0')" ( (binary_expression "(char)local_48 + '0'" (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character ')) )))) ;) (expression_statement "local_48 = (uint)(param_6 == -1);" (assignment_expression "local_48 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (labeled_statement "LAB_003c881c:\n    uVar16 = uVar11;" statement_identifier : (expression_statement "uVar16 = uVar11;" (assignment_expression "uVar16 = uVar11" identifier = identifier) ;)) (if_statement "if (!bVar10) goto LAB_003c8bb8;" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (goto_statement "goto LAB_003c8bb8;" goto statement_identifier ;)) (labeled_statement "LAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" statement_identifier : (if_statement "if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" if (parenthesized_expression "((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c))" ( (binary_expression "(0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)" (parenthesized_expression "(0x2f < (int)uVar11)" ( (binary_expression "0x2f < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)uVar11 < (int)local_4c)" ( (binary_expression "(int)uVar11 < (int)local_4c" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" { (labeled_statement "LAB_003c883c:\n      uVar11 = uVar11 - 0x30;" statement_identifier : (expression_statement "uVar11 = uVar11 - 0x30;" (assignment_expression "uVar11 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;)) (labeled_statement "LAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" if (parenthesized_expression "(uVar20 < CONCAT44(uVar5,local_54))" ( (binary_expression "uVar20 < CONCAT44(uVar5,local_54)" identifier < (call_expression "CONCAT44(uVar5,local_54)" identifier (argument_list "(uVar5,local_54)" ( identifier , identifier )))) )) (compound_statement "{\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }" { (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (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_003c8b5c;" 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_003c8b5c;" goto statement_identifier ;)) (labeled_statement "LAB_003c88e4:\n        local_res8[2] = uVar16 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { comment (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c8b8c;" if (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)) )) (goto_statement "goto LAB_003c8b8c;" goto statement_identifier ;)) (labeled_statement "LAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" { comment (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 "uVar11 = (uint)(iVar8 == -1);" (assignment_expression "uVar11 = (uint)(iVar8 == -1)" identifier = (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n          uVar11 = 0;\n        }" else (compound_statement "{\n          uVar11 = 0;\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar11 == uVar16) goto LAB_003c8924;" if (parenthesized_expression "(uVar11 == uVar16)" ( (binary_expression "uVar11 == uVar16" identifier == identifier) )) (goto_statement "goto LAB_003c8924;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" else (compound_statement "{\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" { (expression_statement "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" identifier = (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar17 = ~((int)uVar11 >> 0x1f);" (assignment_expression "uVar17 = ~((int)uVar11 >> 0x1f)" identifier = (unary_expression "~((int)uVar11 >> 0x1f)" ~ (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" identifier = (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (if_statement "if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" if (parenthesized_expression "(uVar5 <= uVar17)" ( (binary_expression "uVar5 <= uVar17" identifier <= identifier) )) (compound_statement "{\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" { (if_statement "if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }" if (parenthesized_expression "(uVar5 == uVar17)" ( (binary_expression "uVar5 == uVar17" identifier == identifier) )) (compound_statement "{\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }" { (if_statement "if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }" if (parenthesized_expression "(uVar18 <= ~uVar11)" ( (binary_expression "uVar18 <= ~uVar11" identifier <= (unary_expression "~uVar11" ~ identifier)) )) (compound_statement "{\n              uVar16 = 0;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            uVar16 = 0;\n          }" else (compound_statement "{\n            uVar16 = 0;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_54 = uVar11 + uVar18;" (assignment_expression "local_54 = uVar11 + uVar18" identifier = (binary_expression "uVar11 + uVar18" identifier + identifier)) ;) (expression_statement "local_58 = local_58 & 0xff | uVar16;" (assignment_expression "local_58 = local_58 & 0xff | uVar16" identifier = (binary_expression "local_58 & 0xff | uVar16" (binary_expression "local_58 & 0xff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" identifier = (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f)" (call_expression "(uint)(local_54 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar11)" ( (binary_expression "local_54 < uVar11" identifier < identifier) ))) + (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;" 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_003c88e4;" goto statement_identifier ;)) (labeled_statement "LAB_003c8b5c:\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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c88f0;" 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_003c88f0;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8910;" if (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)) )) (goto_statement "goto LAB_003c8910;" goto statement_identifier ;)) (labeled_statement "LAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" statement_identifier : (if_statement "if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" if (parenthesized_expression "(local_48 == uVar16)" ( (binary_expression "local_48 == uVar16" identifier == identifier) )) (compound_statement "{\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" { (labeled_statement "LAB_003c8924:\n          uVar16 = 1;" statement_identifier : (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_003c8928;" goto statement_identifier ;) }))) }))) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar16 = local_resc;" (assignment_expression "uVar16 = local_resc" identifier = identifier) ;) (if_statement "if (bVar10) goto LAB_003c8824;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_003c8824;" goto statement_identifier ;)) (labeled_statement "LAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;" statement_identifier : (expression_statement "uVar16 = uVar16 & 0xff;" (assignment_expression "uVar16 = uVar16 & 0xff" identifier = (binary_expression "uVar16 & 0xff" identifier & number_literal)) ;)) (if_statement "if (uVar16 - 0x30 < 10) goto LAB_003c883c;" if (parenthesized_expression "(uVar16 - 0x30 < 10)" ( (binary_expression "uVar16 - 0x30 < 10" (binary_expression "uVar16 - 0x30" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_003c883c;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" else (compound_statement "{\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" { (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) (goto_statement "goto LAB_003c881c;" goto statement_identifier ;) })) comment (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (iVar8 != -1) goto LAB_003c881c;" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (goto_statement "goto LAB_003c881c;" 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 (bVar10) goto LAB_003c8bf4;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "uVar16 = 0xff;" (assignment_expression "uVar16 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }))) (if_statement "if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" if (parenthesized_expression "(uVar16 - 0x61 < 6)" ( (binary_expression "uVar16 - 0x61 < 6" (binary_expression "uVar16 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar11 = uVar11 - 0x57;\n      }" { (expression_statement "uVar11 = uVar11 - 0x57;" (assignment_expression "uVar11 = uVar11 - 0x57" identifier = (binary_expression "uVar11 - 0x57" identifier - number_literal)) ;) }) (else_clause "else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" else (compound_statement "{\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" { (expression_statement "uVar11 = uVar11 - 0x37;" (assignment_expression "uVar11 = uVar11 - 0x37" identifier = (binary_expression "uVar11 - 0x37" identifier - number_literal)) ;) (if_statement "if (5 < uVar16 - 0x41) goto LAB_003c8bf4;" if (parenthesized_expression "(5 < uVar16 - 0x41)" ( (binary_expression "5 < uVar16 - 0x41" number_literal < (binary_expression "uVar16 - 0x41" identifier - number_literal)) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_003c8844;" goto statement_identifier ;) }))) (labeled_statement "LAB_003c8bf4:\n    uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (if_statement "if (local_6c != 0) goto LAB_003c8c04;" if (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c8c04;" goto statement_identifier ;)) (labeled_statement "LAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" statement_identifier : (if_statement "if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" 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)" ( (unary_expression "!bVar13" ! identifier) ))) )) (goto_statement "goto LAB_003c8944;" goto statement_identifier ;))) (labeled_statement "LAB_003c8c80:\n    uVar4 = 0xffffffff;" statement_identifier : (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" if (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" { (if_statement "if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" { (expression_statement "local_54 = -local_54;" (assignment_expression "local_54 = -local_54" identifier = (unary_expression "-local_54" - identifier)) ;) (expression_statement "uVar5 = -(uint)(local_54 != 0) - uVar5;" (assignment_expression "uVar5 = -(uint)(local_54 != 0) - uVar5" identifier = (binary_expression "-(uint)(local_54 != 0) - uVar5" (unary_expression "-(uint)(local_54 != 0)" - (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) - identifier)) ;) })) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" * identifier) = identifier) ;) (expression_statement "param_9[1] = local_54;" (assignment_expression "param_9[1] = local_54" (subscript_expression "param_9[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_003c8960;" goto statement_identifier ;) })) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" else (compound_statement "{\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" { (if_statement "if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_2c = &local_70;" (assignment_expression "local_2c = &local_70" identifier = (pointer_expression "&local_70" & identifier)) ;) (expression_statement "local_34 = (uint)(param_6 == -1);" (assignment_expression "local_34 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (expression_statement "local_3c = iVar12 + 0x4e;" (assignment_expression "local_3c = iVar12 + 0x4e" identifier = (binary_expression "iVar12 + 0x4e" identifier + number_literal)) ;) (labeled_statement "LAB_003c8e5c:\n      iVar8 = local_3c;" statement_identifier : (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" identifier = identifier) ;)) (expression_statement "uVar16 = local_6c;" (assignment_expression "uVar16 = local_6c" identifier = identifier) ;) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar12 + 0x10);" (assignment_expression "local_4c = (uint)*(byte *)(iVar12 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar12 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar12 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" if (parenthesized_expression "((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11))" ( (binary_expression "(local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)" (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }" { (if_statement "if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;" if (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" identifier = (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" (parenthesized_expression "(*(code *)PTR_memchr_004c5ac8)" ( (pointer_expression "*(code *)PTR_memchr_004c5ac8" * (cast_expression "(code *)PTR_memchr_004c5ac8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,uVar11,local_48)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_003c8bf4;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "uVar16 = iVar6 - iVar8;" (assignment_expression "uVar16 = iVar6 - iVar8" identifier = (binary_expression "iVar6 - iVar8" identifier - identifier)) ;) (if_statement "if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }" if (parenthesized_expression "(0xf < (int)uVar16)" ( (binary_expression "0xf < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) 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 ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" if (parenthesized_expression "((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44))))" ( (binary_expression "(uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))" (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) && (parenthesized_expression "((uVar5 != local_50 || (local_54 <= local_44)))" ( (parenthesized_expression "(uVar5 != local_50 || (local_54 <= local_44))" ( (binary_expression "uVar5 != local_50 || (local_54 <= local_44)" (binary_expression "uVar5 != local_50" identifier != identifier) || (parenthesized_expression "(local_54 <= local_44)" ( (binary_expression "local_54 <= local_44" identifier <= identifier) ))) )) ))) )) (compound_statement "{\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" { (expression_statement "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" identifier = (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar18 = ~((int)uVar16 >> 0x1f);" (assignment_expression "uVar18 = ~((int)uVar16 >> 0x1f)" identifier = (unary_expression "~((int)uVar16 >> 0x1f)" ~ (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" identifier = (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))))) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (if_statement "if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" if (parenthesized_expression "(uVar5 <= uVar18)" ( (binary_expression "uVar5 <= uVar18" identifier <= identifier) )) (compound_statement "{\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" { (if_statement "if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }" if (parenthesized_expression "(uVar5 == uVar18)" ( (binary_expression "uVar5 == uVar18" identifier == identifier) )) (compound_statement "{\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }" { (if_statement "if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }" if (parenthesized_expression "(uVar19 <= ~uVar16)" ( (binary_expression "uVar19 <= ~uVar16" identifier <= (unary_expression "~uVar16" ~ identifier)) )) (compound_statement "{\n                uVar11 = 0;\n              }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n              uVar11 = 0;\n            }" else (compound_statement "{\n              uVar11 = 0;\n            }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_54 = uVar16 + uVar19;" (assignment_expression "local_54 = uVar16 + uVar19" identifier = (binary_expression "uVar16 + uVar19" identifier + identifier)) ;) (expression_statement "local_58 = local_58 & 0xff | uVar11;" (assignment_expression "local_58 = local_58 & 0xff | uVar11" identifier = (binary_expression "local_58 & 0xff | uVar11" (binary_expression "local_58 & 0xff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" identifier = (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f)" (call_expression "(uint)(local_54 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar16)" ( (binary_expression "local_54 < uVar16" identifier < identifier) ))) + (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_003c8f38;" 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_58 = uVar17;" (assignment_expression "local_58 = uVar17" identifier = identifier) ;) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;" 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_003c8fcc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8f50:\n        local_res8[2] = uVar16 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" else (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" { (if_statement "if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" { (if_statement "if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (compound_statement "{\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" { (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) (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_003c8978;" 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_003c8c0c;" goto statement_identifier ;) })) (expression_statement "local_4c = (uint)(char)iVar3;" (assignment_expression "local_4c = (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_6c + 1;" (assignment_expression "local_30 = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) (if_statement "if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }" if (parenthesized_expression "(local_70 != local_40)" ( (binary_expression "local_70 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar11 = local_68[0];\n        }" { (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" identifier = (subscript_expression "local_68[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" if (parenthesized_expression "(uVar11 < local_6c + 1)" ( (binary_expression "uVar11 < local_6c + 1" identifier < (binary_expression "local_6c + 1" identifier + number_literal)) )) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" ( (pointer_expression "*(code *)PTR__M_mutate_004c2090" * (cast_expression "(code *)PTR__M_mutate_004c2090" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2c,local_6c,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) (expression_statement "local_6c = local_30;" (assignment_expression "local_6c = local_30" identifier = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_70 + uVar16) = (char)local_4c;" (assignment_expression "*(char *)((int)local_70 + uVar16) = (char)local_4c" (pointer_expression "*(char *)((int)local_70 + uVar16)" * (cast_expression "(char *)((int)local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar16)" ( (binary_expression "(int)local_70 + uVar16" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_4c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_70 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + local_30)" * (cast_expression "(undefined1 *)((int)local_70 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + local_30)" ( (binary_expression "(int)local_70 + local_30" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_003c8f38:\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_003c8f50;" 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_003c8f50;" goto statement_identifier ;)) (labeled_statement "LAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) 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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c8f5c;" 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_003c8f5c;" goto statement_identifier ;)) }))) (expression_statement "uVar18 = local_34;" (assignment_expression "uVar18 = local_34" identifier = identifier) ;) (if_statement "if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" if (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)) )) (compound_statement "{\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" { (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) }) (else_clause "else {\n              uVar18 = 0;\n            }" else (compound_statement "{\n              uVar18 = 0;\n            }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n          uVar18 = 0;\n        }" else (compound_statement "{\n          uVar18 = 0;\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" if (parenthesized_expression "(uVar11 != uVar18)" ( (binary_expression "uVar11 != uVar18" identifier != identifier) )) (compound_statement "{\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" { (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n          uVar11 = (uint)(char)local_resc;\n        }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) }))))) (goto_statement "goto LAB_003c8e5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" else (compound_statement "{\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;" statement_identifier : (if_statement "if (local_6c == 0) goto LAB_003c8934;" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8934;" goto statement_identifier ;))) (labeled_statement "LAB_003c8c04:\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_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c8c0c:\n    uVar4 = local_6c;" statement_identifier : (expression_statement "uVar4 = local_6c;" (assignment_expression "uVar4 = local_6c" identifier = identifier) ;)) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = local_6c + 1;" (assignment_expression "uVar17 = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" identifier = (subscript_expression "local_68[0]" identifier [ number_literal ])) ;) (if_statement "if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }" if (parenthesized_expression "(local_70 == local_40)" ( (binary_expression "local_70 == local_40" identifier == identifier) )) (compound_statement "{\n      uVar11 = 0xf;\n    }" { (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" if (parenthesized_expression "(uVar11 < uVar17)" ( (binary_expression "uVar11 < uVar17" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" ( (pointer_expression "*(code *)PTR__M_mutate_004c2090" * (cast_expression "(code *)PTR__M_mutate_004c2090" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((string *)&local_70,local_6c,0,0,1)" ( (cast_expression "(string *)&local_70" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_70 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_70 + uVar4)" * (cast_expression "(undefined1 *)((int)local_70 + uVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar4)" ( (binary_expression "(int)local_70 + uVar4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_70 + uVar17) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar17) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + uVar17)" * (cast_expression "(undefined1 *)((int)local_70 + uVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar17)" ( (binary_expression "(int)local_70 + uVar17" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_6c = uVar17;" (assignment_expression "local_6c = uVar17" identifier = identifier) ;) (ERROR "iVar12 = std::" (assignment_expression "iVar12 = std" identifier = identifier) : :) (expression_statement "__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);" (call_expression "__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" identifier (argument_list "(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" ( (pointer_expression "*(char **)(iVar12 + 8)" * (cast_expression "(char **)(iVar12 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar12 + 0xc)" * (cast_expression "(uint *)(iVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) , (cast_expression "(string *)&local_70" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier)) ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n      *param_8 = 4;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 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_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;" if (parenthesized_expression "((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0))" ( (binary_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0))" ( (binary_expression "((iVar3 != 0) || (bVar13)) || (local_6c != 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_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_003c8c80;" goto statement_identifier ;)) (labeled_statement "LAB_003c8944:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) (expression_statement "param_9[1] = uVar4;" (assignment_expression "param_9[1] = uVar4" (subscript_expression "param_9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_9 = uVar11;" (assignment_expression "*param_9 = uVar11" (pointer_expression "*param_9" * identifier) = identifier) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_003c8960:\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_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) 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_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_70 != local_40)" ( (binary_expression "local_70 != local_40" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) (labeled_statement "LAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x003c8858) */\n/* std::istreambuf_iterator<char, std::char_traits<char> > std::num_get<char,\n   std::istreambuf_iterator<char, std::char_traits<char> > >::_M_extract_int[abi:cxx11]<unsigned\n   long long>(std::istreambuf_iterator<char, std::char_traits<char> >,\n   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&,\n   unsigned long long&) const */\n\nint * std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n      _M_extract_int_abi_cxx11_<unsigned_long_long>\n                (int *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (param_3 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (param_4 == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = param_4 == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (param_4 != 0xffffffff)) {\n    uVar11 = (uint)(char)param_4;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  local_resc = 0xffffffff;\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = __udivdi3(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = __verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}\n\n" comment comment (declaration "int * std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n      _M_extract_int_abi_cxx11_<unsigned_long_long>\n                (int *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined *puVar1;" primitive_type (pointer_declarator "* std::num_get" * (ERROR "std::" identifier : :) identifier) (ERROR "<char" < primitive_type) , (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>>::\n      _M_extract_int_abi_cxx11_<unsigned_long_long>\n                (int *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined" identifier : : identifier < primitive_type >> > : : identifier < (function_declarator "unsigned_long_long>\n                (int *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)" identifier (ERROR ">" >) (parameter_list "(int *param_1,undefined4 param_2,int *param_3,uint 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 "uint param_4" type_identifier 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)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "ulonglong uVar20;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "uint local_resc;" type_identifier identifier ;) (declaration "uint *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68 [4];" type_identifier (array_declarator "local_68 [4]" identifier [ number_literal ]) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (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 identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" identifier = (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" ( (pointer_expression "*(code *)PTR__M_id_004c2c74" * (cast_expression "(code *)PTR__M_id_004c2c74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_004c32f8)" ( identifier )))) ;) (expression_statement "piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar14 = (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 "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar12 == 0) {\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */\n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */\n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" { comment (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x68)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2 = PTR__M_cache_004c2d40;" (assignment_expression "puVar2 = PTR__M_cache_004c2d40" identifier = identifier) ;) (expression_statement "puVar1 = PTR_vtable_004c13b0;" (assignment_expression "puVar1 = PTR_vtable_004c13b0" identifier = identifier) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = puVar1 + 8;" (assignment_expression "*puVar7 = puVar1 + 8" (pointer_expression "*puVar7" * identifier) = (binary_expression "puVar1 + 8" identifier + number_literal)) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar7 + 9) = 0;" (assignment_expression "*(undefined2 *)(puVar7 + 9) = 0" (pointer_expression "*(undefined2 *)(puVar7 + 9)" * (cast_expression "(undefined2 *)(puVar7 + 9)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 9)" ( (binary_expression "puVar7 + 9" identifier + number_literal) )))) = number_literal) ;) comment (expression_statement "*(undefined1 *)(puVar7 + 0x19) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x19) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x19)" * (cast_expression "(undefined1 *)(puVar7 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x19)" ( (binary_expression "puVar7 + 0x19" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar7,param_7 + 0x6c);" (call_expression "(*(code *)puVar2)(puVar7,param_7 + 0x6c)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7,param_7 + 0x6c)" ( identifier , (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004c2d18)" ( (pointer_expression "*(code *)PTR__M_install_cache_004c2d18" * (cast_expression "(code *)PTR__M_install_cache_004c2d18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_7 + 0x6c),puVar7,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 "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" identifier = (pointer_expression "*piVar14" * 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)) ;) (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) ;) (if_statement "if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (param_3 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (param_4 == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = param_4 == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0x40)" ( (binary_expression "uVar16 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n    if (param_3 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (param_4 == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if (param_3 == (int *)0x0) goto LAB_003c90b4;" if (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)) )) (goto_statement "goto LAB_003c90b4;" goto statement_identifier ;)) (labeled_statement "LAB_003c86b4:\n    if (param_4 == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" statement_identifier : (if_statement "if (param_4 == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" if (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      bVar13 = false;\n      if (((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" if (parenthesized_expression "(((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1))" ( (binary_expression "((uint)param_3[3] <= (uint)param_3[2]) &&\n         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)param_3[3] <= (uint)param_3[2])" ( (binary_expression "(uint)param_3[3] <= (uint)param_3[2]" (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)" ( (comma_expression "iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1" (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 "()" ( )))) , (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) ;) })))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c86cc;" if (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)) )) (goto_statement "goto LAB_003c86cc;" goto statement_identifier ;)) (labeled_statement "LAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" if (parenthesized_expression "((param_6 == -1) == bVar13)" ( (binary_expression "(param_6 == -1) == bVar13" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c90d0;" goto statement_identifier ;))) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = param_4 == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = param_4 == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\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) ;) })) (if_statement "if (param_3 != (int *)0x0) goto LAB_003c86b4;" if (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)) )) (goto_statement "goto LAB_003c86b4;" goto statement_identifier ;)) (labeled_statement "LAB_003c90b4:\n    bVar13 = param_4 == 0xffffffff;" statement_identifier : (expression_statement "bVar13 = param_4 == 0xffffffff;" (assignment_expression "bVar13 = param_4 == 0xffffffff" identifier = (binary_expression "param_4 == 0xffffffff" identifier == number_literal)) ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c90c4;" if (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)) )) (goto_statement "goto LAB_003c90c4;" goto statement_identifier ;)) (labeled_statement "LAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" statement_identifier : (if_statement "if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\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 )))) ;) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" 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      bVar10 = false;\n    }" else (compound_statement "{\n      bVar10 = false;\n    }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) })))) (if_statement "if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" if (parenthesized_expression "(bVar10 == bVar13)" ( (binary_expression "bVar10 == bVar13" identifier == identifier) )) (compound_statement "{\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" { (labeled_statement "LAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 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 "uVar11 = 0;" (assignment_expression "uVar11 = 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) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) })) }))) (if_statement "if ((local_res8 == (int *)0x0) || (param_4 != 0xffffffff)) {\n    uVar11 = (uint)(char)param_4;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (param_4 != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (param_4 != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "param_4 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n    uVar11 = (uint)(char)param_4;\n  }" { (expression_statement "uVar11 = (uint)(char)param_4;" (assignment_expression "uVar11 = (uint)(char)param_4" identifier = (cast_expression "(uint)(char)param_4" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)param_4" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar11 = (uint)*(char *)local_res8[2];\n  }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" else (compound_statement "{\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\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      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (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      uVar11 = (uint)(char)iVar3;\n    }" else (compound_statement "{\n      uVar11 = (uint)(char)iVar3;\n    }" { (expression_statement "uVar11 = (uint)(char)iVar3;" (assignment_expression "uVar11 = (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 "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" identifier = (call_expression "(uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*(char *)(iVar12 + 0x4a) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4a) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4a)" * (cast_expression "(char *)(iVar12 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4a)" ( (binary_expression "iVar12 + 0x4a" identifier + number_literal) ))))) == identifier) )))) ;) (if_statement "if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" if (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11))" ( (binary_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4a) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4a)" * (cast_expression "(char *)(iVar12 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4a)" ( (binary_expression "iVar12 + 0x4a" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x4b) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4b) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4b)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4b)" * (cast_expression "(char *)(iVar12 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4b)" ( (binary_expression "iVar12 + 0x4b" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c8a14;" goto statement_identifier ;) })) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (goto_statement "goto LAB_003c8a14;" goto statement_identifier ;)) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }" { (expression_statement "local_res8[2] = local_res8[2] + 1;" (assignment_expression "local_res8[2] = local_res8[2] + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "local_res8[2] + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_003c8768:\n    bVar13 = false;" statement_identifier : (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;)) (if_statement "if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" if (parenthesized_expression "(((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       )" ( (binary_expression "((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)local_res8[3] <= uVar5)" ( (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) && (parenthesized_expression "(iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" ( (comma_expression "iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1" (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 "()" ( )))) , (binary_expression "iVar3 == -1" identifier == number_literal)) ))) )) (compound_statement "{\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (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    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }" else (compound_statement "{\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }" { (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_003c8768;" goto statement_identifier ;) })) }))) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" if (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)) )) (compound_statement "{\n    bVar10 = param_6 == -1;\n  }" { (expression_statement "bVar10 = param_6 == -1;" (assignment_expression "bVar10 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" else (if_statement "if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\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 )))) ;) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" 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    bVar10 = false;\n  }" else (compound_statement "{\n    bVar10 = false;\n  }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) }))))) (if_statement "if (bVar10 != bVar13) {\n    cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" if (parenthesized_expression "(bVar10 != bVar13)" ( (binary_expression "bVar10 != bVar13" identifier != identifier) )) (compound_statement "{\n    cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" { (ERROR "cVar9 = istreambuf_iterator<char,std::" (comma_expression "cVar9 = istreambuf_iterator<char,std" (assignment_expression "cVar9 = istreambuf_iterator<char" identifier = (binary_expression "istreambuf_iterator<char" identifier < identifier)) , identifier) : :) (expression_statement "char_traits<char>>::_M_get();" (binary_expression "char_traits<char>>::_M_get()" identifier < (binary_expression "char>>::_M_get()" identifier >> (ERROR "::" : :) (call_expression "_M_get()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar11 = (uint)cVar9;" (assignment_expression "uVar11 = (uint)cVar9" identifier = (cast_expression "(uint)cVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_003c8a14:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "local_58 = (uint)(param_6 == -1);" (assignment_expression "local_58 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (do_statement "do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );" do (compound_statement "{\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    }" { (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (compound_statement "{\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" { (labeled_statement "LAB_003c8e28:\n        uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) })) (if_statement "if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" if (parenthesized_expression "((int)*(char *)(iVar12 + 0x4e) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4e) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4e)" * (cast_expression "(char *)(iVar12 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4e)" ( (binary_expression "iVar12 + 0x4e" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }" { (if_statement "if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }\n        }" { (if_statement "if (uVar4 != 10) goto LAB_003c8a60;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c8a60;" goto statement_identifier ;)) (if_statement "if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" else (compound_statement "{\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" { (labeled_statement "LAB_003c8db8:\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_003c8db8;\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_003c8db8;\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_003c8db8;\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" else (compound_statement "{\n            if (uVar4 != 8) goto LAB_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" { (if_statement "if (uVar4 != 8) goto LAB_003c8db8;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_003c8db8;" 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_003c8a94:\n        uVar5 = local_res8[2];" statement_identifier : (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;" if (parenthesized_expression "(uVar5 < (uint)local_res8[3])" ( (binary_expression "uVar5 < (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_003c8aac;" goto statement_identifier ;)) (labeled_statement "LAB_003c8cb0:\n        uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) (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) goto LAB_003c8abc;" 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_003c8abc;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8adc;" if (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)) )) (goto_statement "goto LAB_003c8adc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" statement_identifier : (if_statement "if (local_58 == uVar5) {\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" if (parenthesized_expression "(local_58 == uVar5)" ( (binary_expression "local_58 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_003c8af0:\n          local_resc = 0xffffffff;\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" { (labeled_statement "LAB_003c8af0:\n          local_resc = 0xffffffff;" statement_identifier : (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;)) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) }))) }) (else_clause "else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" else (compound_statement "{\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" { (if_statement "if (!bVar13) goto LAB_003c8e28;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_003c8e28;" goto statement_identifier ;)) (labeled_statement "LAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" statement_identifier : (if_statement "if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" if (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))" ( (binary_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4c) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4c)" * (cast_expression "(char *)(iVar12 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4c)" ( (binary_expression "iVar12 + 0x4c" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x4d) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4d) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4d)" * (cast_expression "(char *)(iVar12 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4d)" ( (binary_expression "iVar12 + 0x4d" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) }))) (if_statement "if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (if_statement "if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\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_003c8a94;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;) (goto_statement "goto joined_r0x003c87bc;" 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 "uVar5 = local_res8[2];" (assignment_expression "uVar5 = 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] <= uVar5) goto LAB_003c8cb0;" if (parenthesized_expression "((uint)local_res8[3] <= uVar5)" ( (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c8cb0;" goto statement_identifier ;)) (labeled_statement "LAB_003c8aac:\n        local_res8[2] = uVar5 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar5 + 1;" (assignment_expression "local_res8[2] = uVar5 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c8abc:\n        uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" if (parenthesized_expression "(((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1))" ( (binary_expression "((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" ( (comma_expression "iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1" (assignment_expression "iVar8 = (**(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 "()" ( )))) , (binary_expression "iVar8 == -1" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (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) goto LAB_003c8cdc;" if (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)) )) (goto_statement "goto LAB_003c8cdc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" statement_identifier : (if_statement "if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 = (uint)(iVar8 == -1);" (assignment_expression "uVar17 = (uint)(iVar8 == -1)" identifier = (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -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          uVar17 = 0;\n        }" else (compound_statement "{\n          uVar17 = 0;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) })))) (if_statement "if (uVar17 == uVar5) goto LAB_003c8af0;" if (parenthesized_expression "(uVar17 == uVar5)" ( (binary_expression "uVar17 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_003c8af0;" goto statement_identifier ;)) }))) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\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        uVar11 = 0xffffffff;\n      }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        uVar11 = (uint)*(char *)local_res8[2];\n      }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" else (compound_statement "{\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (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          uVar11 = (uint)(char)iVar8;\n        }" else (compound_statement "{\n          uVar11 = (uint)(char)iVar8;\n        }" { (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }))) }))))) (if_statement "if (!bVar13) goto LAB_003c93b4;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_003c93b4;" goto statement_identifier ;)) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 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) ;) (labeled_statement "joined_r0x003c8b00:\n  local_48 = uVar4;" statement_identifier : (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;)) (if_statement "if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n    local_48 = 0x16;\n  }" { (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) })) (labeled_statement "joined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;" statement_identifier : (expression_statement "local_68[0] = local_68[0] & 0xffffff;" (assignment_expression "local_68[0] = local_68[0] & 0xffffff" (subscript_expression "local_68[0]" identifier [ number_literal ]) = (binary_expression "local_68[0] & 0xffffff" (subscript_expression "local_68[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" identifier = identifier) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (if_statement "if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */\n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" { (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" identifier = identifier) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) comment (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_70,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_70,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004c2458)" ( (pointer_expression "*(code *)PTR_reserve_004c2458" * (cast_expression "(code *)PTR_reserve_004c2458" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_70,0x20)" ( (pointer_expression "&local_70" & identifier) , number_literal ))) ;) })) (expression_statement "uVar20 = __udivdi3(0xffffffff,0xffffffff,0,uVar4);" (assignment_expression "uVar20 = __udivdi3(0xffffffff,0xffffffff,0,uVar4)" identifier = (call_expression "__udivdi3(0xffffffff,0xffffffff,0,uVar4)" identifier (argument_list "(0xffffffff,0xffffffff,0,uVar4)" ( number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar12 + 100);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar12 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar12 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar12 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 100)" ( (binary_expression "iVar12 + 100" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar16;" (assignment_expression "uVar5 = uVar16" identifier = identifier) ;) (if_statement "if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = __verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }" { (if_statement "if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c8928;" goto statement_identifier ;) })) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = local_48 < 0xb;" (assignment_expression "bVar10 = local_48 < 0xb" identifier = (binary_expression "local_48 < 0xb" identifier < number_literal)) ;) (expression_statement "local_4c = (uint)(char)((char)local_48 + '0');" (assignment_expression "local_4c = (uint)(char)((char)local_48 + '0')" identifier = (call_expression "(uint)(char)((char)local_48 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "((char)local_48 + '0')" ( (binary_expression "(char)local_48 + '0'" (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character ')) )))) ;) (expression_statement "local_48 = (uint)(param_6 == -1);" (assignment_expression "local_48 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (labeled_statement "LAB_003c881c:\n    uVar16 = uVar11;" statement_identifier : (expression_statement "uVar16 = uVar11;" (assignment_expression "uVar16 = uVar11" identifier = identifier) ;)) (if_statement "if (!bVar10) goto LAB_003c8bb8;" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (goto_statement "goto LAB_003c8bb8;" goto statement_identifier ;)) (labeled_statement "LAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" statement_identifier : (if_statement "if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" if (parenthesized_expression "((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c))" ( (binary_expression "(0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)" (parenthesized_expression "(0x2f < (int)uVar11)" ( (binary_expression "0x2f < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)uVar11 < (int)local_4c)" ( (binary_expression "(int)uVar11 < (int)local_4c" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" { (labeled_statement "LAB_003c883c:\n      uVar11 = uVar11 - 0x30;" statement_identifier : (expression_statement "uVar11 = uVar11 - 0x30;" (assignment_expression "uVar11 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;)) (labeled_statement "LAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" if (parenthesized_expression "(uVar20 < CONCAT44(uVar5,local_54))" ( (binary_expression "uVar20 < CONCAT44(uVar5,local_54)" identifier < (call_expression "CONCAT44(uVar5,local_54)" identifier (argument_list "(uVar5,local_54)" ( identifier , identifier )))) )) (compound_statement "{\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }" { (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (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_003c8b5c;" 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_003c8b5c;" goto statement_identifier ;)) (labeled_statement "LAB_003c88e4:\n        local_res8[2] = uVar16 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { comment (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c8b8c;" if (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)) )) (goto_statement "goto LAB_003c8b8c;" goto statement_identifier ;)) (labeled_statement "LAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" { comment (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 "uVar11 = (uint)(iVar8 == -1);" (assignment_expression "uVar11 = (uint)(iVar8 == -1)" identifier = (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n          uVar11 = 0;\n        }" else (compound_statement "{\n          uVar11 = 0;\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar11 == uVar16) goto LAB_003c8924;" if (parenthesized_expression "(uVar11 == uVar16)" ( (binary_expression "uVar11 == uVar16" identifier == identifier) )) (goto_statement "goto LAB_003c8924;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" else (compound_statement "{\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" { (expression_statement "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" identifier = (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar17 = ~((int)uVar11 >> 0x1f);" (assignment_expression "uVar17 = ~((int)uVar11 >> 0x1f)" identifier = (unary_expression "~((int)uVar11 >> 0x1f)" ~ (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" identifier = (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (if_statement "if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" if (parenthesized_expression "(uVar5 <= uVar17)" ( (binary_expression "uVar5 <= uVar17" identifier <= identifier) )) (compound_statement "{\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" { (if_statement "if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }" if (parenthesized_expression "(uVar5 == uVar17)" ( (binary_expression "uVar5 == uVar17" identifier == identifier) )) (compound_statement "{\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }" { (if_statement "if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }" if (parenthesized_expression "(uVar18 <= ~uVar11)" ( (binary_expression "uVar18 <= ~uVar11" identifier <= (unary_expression "~uVar11" ~ identifier)) )) (compound_statement "{\n              uVar16 = 0;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            uVar16 = 0;\n          }" else (compound_statement "{\n            uVar16 = 0;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_54 = uVar11 + uVar18;" (assignment_expression "local_54 = uVar11 + uVar18" identifier = (binary_expression "uVar11 + uVar18" identifier + identifier)) ;) (expression_statement "local_58 = local_58 & 0xff | uVar16;" (assignment_expression "local_58 = local_58 & 0xff | uVar16" identifier = (binary_expression "local_58 & 0xff | uVar16" (binary_expression "local_58 & 0xff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" identifier = (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f)" (call_expression "(uint)(local_54 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar11)" ( (binary_expression "local_54 < uVar11" identifier < identifier) ))) + (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;" 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_003c88e4;" goto statement_identifier ;)) (labeled_statement "LAB_003c8b5c:\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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c88f0;" 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_003c88f0;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8910;" if (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)) )) (goto_statement "goto LAB_003c8910;" goto statement_identifier ;)) (labeled_statement "LAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" statement_identifier : (if_statement "if (local_48 == uVar16) {\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" if (parenthesized_expression "(local_48 == uVar16)" ( (binary_expression "local_48 == uVar16" identifier == identifier) )) (compound_statement "{\nLAB_003c8924:\n          local_resc = 0xffffffff;\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" { (labeled_statement "LAB_003c8924:\n          local_resc = 0xffffffff;" statement_identifier : (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_003c8928;" goto statement_identifier ;) }))) }))) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) {\n        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\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        uVar11 = 0xffffffff;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar11 = uVar16;\n        uVar16 = uVar11 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar16 = local_resc;" (assignment_expression "uVar16 = local_resc" identifier = identifier) ;) (if_statement "if (bVar10) goto LAB_003c8824;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_003c8824;" goto statement_identifier ;)) (labeled_statement "LAB_003c8bb8:\n        uVar11 = uVar16;" statement_identifier : (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;)) (expression_statement "uVar16 = uVar11 & 0xff;" (assignment_expression "uVar16 = uVar11 & 0xff" identifier = (binary_expression "uVar11 & 0xff" identifier & number_literal)) ;) (if_statement "if (uVar16 - 0x30 < 10) goto LAB_003c883c;" if (parenthesized_expression "(uVar16 - 0x30 < 10)" ( (binary_expression "uVar16 - 0x30 < 10" (binary_expression "uVar16 - 0x30" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_003c883c;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" else (compound_statement "{\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" { (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) (goto_statement "goto LAB_003c881c;" goto statement_identifier ;) })) comment (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (iVar8 != -1) goto LAB_003c881c;" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (goto_statement "goto LAB_003c881c;" 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 (bVar10) goto LAB_003c8bf4;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "uVar16 = 0xff;" (assignment_expression "uVar16 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }))) (if_statement "if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" if (parenthesized_expression "(uVar16 - 0x61 < 6)" ( (binary_expression "uVar16 - 0x61 < 6" (binary_expression "uVar16 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar11 = uVar11 - 0x57;\n      }" { (expression_statement "uVar11 = uVar11 - 0x57;" (assignment_expression "uVar11 = uVar11 - 0x57" identifier = (binary_expression "uVar11 - 0x57" identifier - number_literal)) ;) }) (else_clause "else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" else (compound_statement "{\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" { (expression_statement "uVar11 = uVar11 - 0x37;" (assignment_expression "uVar11 = uVar11 - 0x37" identifier = (binary_expression "uVar11 - 0x37" identifier - number_literal)) ;) (if_statement "if (5 < uVar16 - 0x41) goto LAB_003c8bf4;" if (parenthesized_expression "(5 < uVar16 - 0x41)" ( (binary_expression "5 < uVar16 - 0x41" number_literal < (binary_expression "uVar16 - 0x41" identifier - number_literal)) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_003c8844;" goto statement_identifier ;) }))) (labeled_statement "LAB_003c8bf4:\n    uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (if_statement "if (local_6c != 0) goto LAB_003c8c04;" if (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c8c04;" goto statement_identifier ;)) (labeled_statement "LAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" statement_identifier : (if_statement "if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" 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)" ( (unary_expression "!bVar13" ! identifier) ))) )) (goto_statement "goto LAB_003c8944;" goto statement_identifier ;))) (labeled_statement "LAB_003c8c80:\n    uVar4 = 0xffffffff;" statement_identifier : (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" if (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" { (if_statement "if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" { (expression_statement "local_54 = -local_54;" (assignment_expression "local_54 = -local_54" identifier = (unary_expression "-local_54" - identifier)) ;) (expression_statement "uVar5 = -(uint)(local_54 != 0) - uVar5;" (assignment_expression "uVar5 = -(uint)(local_54 != 0) - uVar5" identifier = (binary_expression "-(uint)(local_54 != 0) - uVar5" (unary_expression "-(uint)(local_54 != 0)" - (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) - identifier)) ;) })) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" * identifier) = identifier) ;) (expression_statement "param_9[1] = local_54;" (assignment_expression "param_9[1] = local_54" (subscript_expression "param_9[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_003c8960;" goto statement_identifier ;) })) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = __verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" else (compound_statement "{\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = __verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" { (if_statement "if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_resc = 0xffffffff;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_2c = &local_70;" (assignment_expression "local_2c = &local_70" identifier = (pointer_expression "&local_70" & identifier)) ;) (expression_statement "local_34 = (uint)(param_6 == -1);" (assignment_expression "local_34 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (expression_statement "local_3c = iVar12 + 0x4e;" (assignment_expression "local_3c = iVar12 + 0x4e" identifier = (binary_expression "iVar12 + 0x4e" identifier + number_literal)) ;) (labeled_statement "LAB_003c8e5c:\n      iVar8 = local_3c;" statement_identifier : (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" identifier = identifier) ;)) (expression_statement "uVar16 = local_6c;" (assignment_expression "uVar16 = local_6c" identifier = identifier) ;) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar12 + 0x10);" (assignment_expression "local_4c = (uint)*(byte *)(iVar12 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar12 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar12 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" if (parenthesized_expression "((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11))" ( (binary_expression "(local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)" (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }" { (if_statement "if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;" if (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" identifier = (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" (parenthesized_expression "(*(code *)PTR_memchr_004c5ac8)" ( (pointer_expression "*(code *)PTR_memchr_004c5ac8" * (cast_expression "(code *)PTR_memchr_004c5ac8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,uVar11,local_48)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_003c8bf4;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "uVar16 = iVar6 - iVar8;" (assignment_expression "uVar16 = iVar6 - iVar8" identifier = (binary_expression "iVar6 - iVar8" identifier - identifier)) ;) (if_statement "if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }" if (parenthesized_expression "(0xf < (int)uVar16)" ( (binary_expression "0xf < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) 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 ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" if (parenthesized_expression "((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44))))" ( (binary_expression "(uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))" (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) && (parenthesized_expression "((uVar5 != local_50 || (local_54 <= local_44)))" ( (parenthesized_expression "(uVar5 != local_50 || (local_54 <= local_44))" ( (binary_expression "uVar5 != local_50 || (local_54 <= local_44)" (binary_expression "uVar5 != local_50" identifier != identifier) || (parenthesized_expression "(local_54 <= local_44)" ( (binary_expression "local_54 <= local_44" identifier <= identifier) ))) )) ))) )) (compound_statement "{\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" { (expression_statement "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" identifier = (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar18 = ~((int)uVar16 >> 0x1f);" (assignment_expression "uVar18 = ~((int)uVar16 >> 0x1f)" identifier = (unary_expression "~((int)uVar16 >> 0x1f)" ~ (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" identifier = (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))))) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (if_statement "if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" if (parenthesized_expression "(uVar5 <= uVar18)" ( (binary_expression "uVar5 <= uVar18" identifier <= identifier) )) (compound_statement "{\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" { (if_statement "if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }" if (parenthesized_expression "(uVar5 == uVar18)" ( (binary_expression "uVar5 == uVar18" identifier == identifier) )) (compound_statement "{\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }" { (if_statement "if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }" if (parenthesized_expression "(uVar19 <= ~uVar16)" ( (binary_expression "uVar19 <= ~uVar16" identifier <= (unary_expression "~uVar16" ~ identifier)) )) (compound_statement "{\n                uVar11 = 0;\n              }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n              uVar11 = 0;\n            }" else (compound_statement "{\n              uVar11 = 0;\n            }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_54 = uVar16 + uVar19;" (assignment_expression "local_54 = uVar16 + uVar19" identifier = (binary_expression "uVar16 + uVar19" identifier + identifier)) ;) (expression_statement "local_58 = local_58 & 0xff | uVar11;" (assignment_expression "local_58 = local_58 & 0xff | uVar11" identifier = (binary_expression "local_58 & 0xff | uVar11" (binary_expression "local_58 & 0xff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" identifier = (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f)" (call_expression "(uint)(local_54 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar16)" ( (binary_expression "local_54 < uVar16" identifier < identifier) ))) + (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_003c8f38;" 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_58 = uVar17;" (assignment_expression "local_58 = uVar17" identifier = identifier) ;) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;" 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_003c8fcc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8f50:\n        local_res8[2] = uVar16 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" else (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" { (if_statement "if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" { (if_statement "if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (compound_statement "{\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" { (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) (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_003c8978;" 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_003c8c0c;" goto statement_identifier ;) })) (expression_statement "local_4c = (uint)(char)iVar3;" (assignment_expression "local_4c = (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_6c + 1;" (assignment_expression "local_30 = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) (if_statement "if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }" if (parenthesized_expression "(local_70 != local_40)" ( (binary_expression "local_70 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar11 = local_68[0];\n        }" { (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" identifier = (subscript_expression "local_68[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" if (parenthesized_expression "(uVar11 < local_6c + 1)" ( (binary_expression "uVar11 < local_6c + 1" identifier < (binary_expression "local_6c + 1" identifier + number_literal)) )) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" ( (pointer_expression "*(code *)PTR__M_mutate_004c2090" * (cast_expression "(code *)PTR__M_mutate_004c2090" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2c,local_6c,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) (expression_statement "local_6c = local_30;" (assignment_expression "local_6c = local_30" identifier = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_70 + uVar16) = (char)local_4c;" (assignment_expression "*(char *)((int)local_70 + uVar16) = (char)local_4c" (pointer_expression "*(char *)((int)local_70 + uVar16)" * (cast_expression "(char *)((int)local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar16)" ( (binary_expression "(int)local_70 + uVar16" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_4c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_70 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + local_30)" * (cast_expression "(undefined1 *)((int)local_70 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + local_30)" ( (binary_expression "(int)local_70 + local_30" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_003c8f38:\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_003c8f50;" 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_003c8f50;" goto statement_identifier ;)) (labeled_statement "LAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) 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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c8f5c;" 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_003c8f5c;" goto statement_identifier ;)) }))) (expression_statement "uVar18 = local_34;" (assignment_expression "uVar18 = local_34" identifier = identifier) ;) (if_statement "if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" if (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)) )) (compound_statement "{\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" { (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) }) (else_clause "else {\n              uVar18 = 0;\n            }" else (compound_statement "{\n              uVar18 = 0;\n            }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n          uVar18 = 0;\n        }" else (compound_statement "{\n          uVar18 = 0;\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar11 != uVar18) {\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" if (parenthesized_expression "(uVar11 != uVar18)" ( (binary_expression "uVar11 != uVar18" identifier != identifier) )) (compound_statement "{\n        if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" { (if_statement "if (local_res8 == (int *)0x0) {\n          uVar11 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\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          uVar11 = 0xffffffff;\n        }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) }))))) (goto_statement "goto LAB_003c8e5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" else (compound_statement "{\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;" statement_identifier : (if_statement "if (local_6c == 0) goto LAB_003c8934;" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8934;" goto statement_identifier ;))) (labeled_statement "LAB_003c8c04:\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_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c8c0c:\n    uVar4 = local_6c;" statement_identifier : (expression_statement "uVar4 = local_6c;" (assignment_expression "uVar4 = local_6c" identifier = identifier) ;)) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = local_6c + 1;" (assignment_expression "uVar17 = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" identifier = (subscript_expression "local_68[0]" identifier [ number_literal ])) ;) (if_statement "if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }" if (parenthesized_expression "(local_70 == local_40)" ( (binary_expression "local_70 == local_40" identifier == identifier) )) (compound_statement "{\n      uVar11 = 0xf;\n    }" { (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" if (parenthesized_expression "(uVar11 < uVar17)" ( (binary_expression "uVar11 < uVar17" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" ( (pointer_expression "*(code *)PTR__M_mutate_004c2090" * (cast_expression "(code *)PTR__M_mutate_004c2090" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((string *)&local_70,local_6c,0,0,1)" ( (cast_expression "(string *)&local_70" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_70 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_70 + uVar4)" * (cast_expression "(undefined1 *)((int)local_70 + uVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar4)" ( (binary_expression "(int)local_70 + uVar4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_70 + uVar17) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar17) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + uVar17)" * (cast_expression "(undefined1 *)((int)local_70 + uVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar17)" ( (binary_expression "(int)local_70 + uVar17" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_6c = uVar17;" (assignment_expression "local_6c = uVar17" identifier = identifier) ;) (expression_statement "iVar12 = __verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);" (assignment_expression "iVar12 = __verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" identifier = (call_expression "__verify_grouping(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" identifier (argument_list "(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" ( (pointer_expression "*(char **)(iVar12 + 8)" * (cast_expression "(char **)(iVar12 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar12 + 0xc)" * (cast_expression "(uint *)(iVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) , (cast_expression "(string *)&local_70" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier)) )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n      *param_8 = 4;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 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_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;" if (parenthesized_expression "((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0))" ( (binary_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0))" ( (binary_expression "((iVar3 != 0) || (bVar13)) || (local_6c != 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_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_003c8c80;" goto statement_identifier ;)) (labeled_statement "LAB_003c8944:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) (expression_statement "param_9[1] = uVar4;" (assignment_expression "param_9[1] = uVar4" (subscript_expression "param_9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_9 = uVar11;" (assignment_expression "*param_9 = uVar11" (pointer_expression "*param_9" * identifier) = identifier) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_003c8960:\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_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) 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_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_70 != local_40)" ( (binary_expression "local_70 != local_40" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) (labeled_statement "LAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "undefined4 *\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}\n\n" (function_definition "undefined4 *\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}" type_identifier (pointer_declarator "*\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" * (function_declarator "FUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" ( (parameter_declaration "undefined4 *param_1" type_identifier (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 "uint param_4" type_identifier 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  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "ulonglong uVar20;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "uint local_resc;" type_identifier identifier ;) (declaration "uint *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68 [4];" type_identifier (array_declarator "local_68 [4]" identifier [ number_literal ]) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (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 identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "uint **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * 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_004c2c74)(PTR_id_004c32f8);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" identifier = (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" ( (pointer_expression "*(code *)PTR__M_id_004c2c74" * (cast_expression "(code *)PTR__M_id_004c2c74" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_004c32f8)" ( identifier )))) ;) (expression_statement "piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar14 = (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 "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (if_statement "if (iVar12 == 0) {\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x68)" ( number_literal ))))) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2 = PTR__M_cache_004c2d40;" (assignment_expression "puVar2 = PTR__M_cache_004c2d40" identifier = identifier) ;) (expression_statement "puVar1 = PTR_vtable_004c13b0;" (assignment_expression "puVar1 = PTR_vtable_004c13b0" identifier = identifier) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = puVar1 + 8;" (assignment_expression "*puVar7 = puVar1 + 8" (pointer_expression "*puVar7" * identifier) = (binary_expression "puVar1 + 8" identifier + number_literal)) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar7 + 9) = 0;" (assignment_expression "*(undefined2 *)(puVar7 + 9) = 0" (pointer_expression "*(undefined2 *)(puVar7 + 9)" * (cast_expression "(undefined2 *)(puVar7 + 9)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 9)" ( (binary_expression "puVar7 + 9" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 0x19) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x19) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x19)" * (cast_expression "(undefined1 *)(puVar7 + 0x19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x19)" ( (binary_expression "puVar7 + 0x19" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar7,param_7 + 0x6c);" (call_expression "(*(code *)puVar2)(puVar7,param_7 + 0x6c)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7,param_7 + 0x6c)" ( identifier , (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004c2d18)" ( (pointer_expression "*(code *)PTR__M_install_cache_004c2d18" * (cast_expression "(code *)PTR__M_install_cache_004c2d18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_7 + 0x6c),puVar7,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 "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" identifier = (pointer_expression "*piVar14" * 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    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0x40)" ( (binary_expression "uVar16 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) goto LAB_003c90b4;" 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_003c90b4;" goto statement_identifier ;)) (labeled_statement "LAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" statement_identifier : (if_statement "if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" if (parenthesized_expression "(local_resc == 0xffffffff)" ( (binary_expression "local_resc == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" if (parenthesized_expression "(((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1))" ( (binary_expression "((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" ( (comma_expression "iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1" (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 "()" ( )))) , (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) ;) })))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c86cc;" if (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)) )) (goto_statement "goto LAB_003c86cc;" goto statement_identifier ;)) (labeled_statement "LAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" if (parenthesized_expression "((param_6 == -1) == bVar13)" ( (binary_expression "(param_6 == -1) == bVar13" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c90d0;" goto statement_identifier ;))) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\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) ;) })) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c86b4;" 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_003c86b4;" goto statement_identifier ;)) (labeled_statement "LAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;" statement_identifier : (expression_statement "bVar13 = local_resc == 0xffffffff;" (assignment_expression "bVar13 = local_resc == 0xffffffff" identifier = (binary_expression "local_resc == 0xffffffff" identifier == number_literal)) ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c90c4;" if (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)) )) (goto_statement "goto LAB_003c90c4;" goto statement_identifier ;)) (labeled_statement "LAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" statement_identifier : (if_statement "if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\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 )))) ;) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" 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      bVar10 = false;\n    }" else (compound_statement "{\n      bVar10 = false;\n    }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) })))) (if_statement "if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" if (parenthesized_expression "(bVar10 == bVar13)" ( (binary_expression "bVar10 == bVar13" identifier == identifier) )) (compound_statement "{\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" { (labeled_statement "LAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 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 "uVar11 = 0;" (assignment_expression "uVar11 = 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) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) })) }))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n    uVar11 = (uint)(char)local_resc;\n  }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n    uVar11 = (uint)*(char *)local_res8[2];\n  }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" else (compound_statement "{\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\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      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (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      uVar11 = (uint)(char)iVar3;\n    }" else (compound_statement "{\n      uVar11 = (uint)(char)iVar3;\n    }" { (expression_statement "uVar11 = (uint)(char)iVar3;" (assignment_expression "uVar11 = (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 "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" identifier = (call_expression "(uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*(char *)(iVar12 + 0x4a) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4a) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4a)" * (cast_expression "(char *)(iVar12 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4a)" ( (binary_expression "iVar12 + 0x4a" identifier + number_literal) ))))) == identifier) )))) ;) (if_statement "if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" if (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11))" ( (binary_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4a) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4a)" * (cast_expression "(char *)(iVar12 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4a)" ( (binary_expression "iVar12 + 0x4a" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x4b) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4b) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4b)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4b)" * (cast_expression "(char *)(iVar12 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4b)" ( (binary_expression "iVar12 + 0x4b" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c8a14;" goto statement_identifier ;) })) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (goto_statement "goto LAB_003c8a14;" goto statement_identifier ;)) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }" { (expression_statement "local_res8[2] = local_res8[2] + 1;" (assignment_expression "local_res8[2] = local_res8[2] + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "local_res8[2] + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_003c8768:\n    local_resc = 0xffffffff;" statement_identifier : (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;)) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (if_statement "if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" if (parenthesized_expression "(((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       )" ( (binary_expression "((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)local_res8[3] <= uVar5)" ( (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) && (parenthesized_expression "(iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" ( (comma_expression "iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1" (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 "()" ( )))) , (binary_expression "iVar3 == -1" identifier == number_literal)) ))) )) (compound_statement "{\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (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    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }" else (compound_statement "{\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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 = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }" { (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_003c8768;" goto statement_identifier ;) })) }))) (if_statement "if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" if (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)) )) (compound_statement "{\n    bVar10 = param_6 == -1;\n  }" { (expression_statement "bVar10 = param_6 == -1;" (assignment_expression "bVar10 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" else (if_statement "if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\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 )))) ;) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" identifier = (binary_expression "iVar3 == -1" 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    bVar10 = false;\n  }" else (compound_statement "{\n    bVar10 = false;\n  }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) }))))) (if_statement "if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" if (parenthesized_expression "(bVar10 != bVar13)" ( (binary_expression "bVar10 != bVar13" identifier != identifier) )) (compound_statement "{\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" { (expression_statement "cVar9 = FUN_003c05e4(&local_res8,local_resc);" (assignment_expression "cVar9 = FUN_003c05e4(&local_res8,local_resc)" identifier = (call_expression "FUN_003c05e4(&local_res8,local_resc)" identifier (argument_list "(&local_res8,local_resc)" ( (pointer_expression "&local_res8" & identifier) , identifier )))) ;) (expression_statement "uVar11 = (uint)cVar9;" (assignment_expression "uVar11 = (uint)cVar9" identifier = (cast_expression "(uint)cVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_003c8a14:\n    iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "local_58 = (uint)(param_6 == -1);" (assignment_expression "local_58 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (do_statement "do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );" do (compound_statement "{\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    }" { (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (compound_statement "{\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" { (labeled_statement "LAB_003c8e28:\n        uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) })) (if_statement "if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" if (parenthesized_expression "((int)*(char *)(iVar12 + 0x4e) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4e) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4e)" * (cast_expression "(char *)(iVar12 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4e)" ( (binary_expression "iVar12 + 0x4e" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }" { (if_statement "if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }\n        }" { (if_statement "if (uVar4 != 10) goto LAB_003c8a60;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c8a60;" goto statement_identifier ;)) (if_statement "if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" else (compound_statement "{\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" { (labeled_statement "LAB_003c8db8:\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_003c8db8;\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_003c8db8;\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_003c8db8;\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" else (compound_statement "{\n            if (uVar4 != 8) goto LAB_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" { (if_statement "if (uVar4 != 8) goto LAB_003c8db8;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_003c8db8;" 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_003c8a94:\n        uVar5 = local_res8[2];" statement_identifier : (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;" if (parenthesized_expression "(uVar5 < (uint)local_res8[3])" ( (binary_expression "uVar5 < (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_003c8aac;" goto statement_identifier ;)) (labeled_statement "LAB_003c8cb0:\n        uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) (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 = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c8abc;" 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_003c8abc;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8adc;" if (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)) )) (goto_statement "goto LAB_003c8adc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" statement_identifier : (if_statement "if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" if (parenthesized_expression "(local_58 == uVar5)" ( (binary_expression "local_58 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" { (labeled_statement "LAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) }))) }) (else_clause "else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" else (compound_statement "{\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" { (if_statement "if (!bVar13) goto LAB_003c8e28;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_003c8e28;" goto statement_identifier ;)) (labeled_statement "LAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" statement_identifier : (if_statement "if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" if (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))" ( (binary_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4c) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4c)" * (cast_expression "(char *)(iVar12 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4c)" ( (binary_expression "iVar12 + 0x4c" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar12 + 0x4d) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x4d) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x4d)" * (cast_expression "(char *)(iVar12 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x4d)" ( (binary_expression "iVar12 + 0x4d" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_identifier ;) }))) (if_statement "if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (if_statement "if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\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_003c8a94;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;) (goto_statement "goto joined_r0x003c87bc;" 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 "uVar5 = local_res8[2];" (assignment_expression "uVar5 = 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] <= uVar5) goto LAB_003c8cb0;" if (parenthesized_expression "((uint)local_res8[3] <= uVar5)" ( (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c8cb0;" goto statement_identifier ;)) (labeled_statement "LAB_003c8aac:\n        local_res8[2] = uVar5 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar5 + 1;" (assignment_expression "local_res8[2] = uVar5 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c8abc:\n        local_resc = 0xffffffff;" statement_identifier : (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;)) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" if (parenthesized_expression "(((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1))" ( (binary_expression "((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) && (parenthesized_expression "(iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" ( (comma_expression "iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1" (assignment_expression "iVar8 = (**(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 "()" ( )))) , (binary_expression "iVar8 == -1" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (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) goto LAB_003c8cdc;" if (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)) )) (goto_statement "goto LAB_003c8cdc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" statement_identifier : (if_statement "if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 = (uint)(iVar8 == -1);" (assignment_expression "uVar17 = (uint)(iVar8 == -1)" identifier = (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -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          uVar17 = 0;\n        }" else (compound_statement "{\n          uVar17 = 0;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) })))) (if_statement "if (uVar17 == uVar5) goto LAB_003c8af0;" if (parenthesized_expression "(uVar17 == uVar5)" ( (binary_expression "uVar17 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_003c8af0;" goto statement_identifier ;)) }))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        uVar11 = (uint)(char)local_resc;\n      }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n        uVar11 = (uint)*(char *)local_res8[2];\n      }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" else (compound_statement "{\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (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          uVar11 = (uint)(char)iVar8;\n        }" else (compound_statement "{\n          uVar11 = (uint)(char)iVar8;\n        }" { (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }))) }))))) (if_statement "if (!bVar13) goto LAB_003c93b4;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_003c93b4;" goto statement_identifier ;)) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 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) ;) (labeled_statement "joined_r0x003c8b00:\n  local_48 = uVar4;" statement_identifier : (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" identifier = identifier) ;)) (if_statement "if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n    local_48 = 0x16;\n  }" { (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" identifier = number_literal) ;) })) (labeled_statement "joined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;" statement_identifier : (expression_statement "local_68[0] = local_68[0] & 0xffffff;" (assignment_expression "local_68[0] = local_68[0] & 0xffffff" (subscript_expression "local_68[0]" identifier [ number_literal ]) = (binary_expression "local_68[0] & 0xffffff" (subscript_expression "local_68[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" identifier = identifier) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (if_statement "if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" { (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" identifier = identifier) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" identifier = identifier) ;) (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_70,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_70,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004c2458)" ( (pointer_expression "*(code *)PTR_reserve_004c2458" * (cast_expression "(code *)PTR_reserve_004c2458" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_70,0x20)" ( (pointer_expression "&local_70" & identifier) , number_literal ))) ;) })) (expression_statement "uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);" (assignment_expression "uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4)" identifier = (call_expression "FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4)" identifier (argument_list "(0xffffffff,0xffffffff,0,uVar4)" ( number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar12 + 100);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar12 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar12 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar12 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 100)" ( (binary_expression "iVar12 + 100" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar16;" (assignment_expression "uVar5 = uVar16" identifier = identifier) ;) (if_statement "if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }" { (if_statement "if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c8928;" goto statement_identifier ;) })) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = local_48 < 0xb;" (assignment_expression "bVar10 = local_48 < 0xb" identifier = (binary_expression "local_48 < 0xb" identifier < number_literal)) ;) (expression_statement "local_4c = (uint)(char)((char)local_48 + '0');" (assignment_expression "local_4c = (uint)(char)((char)local_48 + '0')" identifier = (call_expression "(uint)(char)((char)local_48 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "((char)local_48 + '0')" ( (binary_expression "(char)local_48 + '0'" (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character ')) )))) ;) (expression_statement "local_48 = (uint)(param_6 == -1);" (assignment_expression "local_48 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (labeled_statement "LAB_003c881c:\n    uVar16 = uVar11;" statement_identifier : (expression_statement "uVar16 = uVar11;" (assignment_expression "uVar16 = uVar11" identifier = identifier) ;)) (if_statement "if (!bVar10) goto LAB_003c8bb8;" if (parenthesized_expression "(!bVar10)" ( (unary_expression "!bVar10" ! identifier) )) (goto_statement "goto LAB_003c8bb8;" goto statement_identifier ;)) (labeled_statement "LAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" statement_identifier : (if_statement "if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" if (parenthesized_expression "((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c))" ( (binary_expression "(0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)" (parenthesized_expression "(0x2f < (int)uVar11)" ( (binary_expression "0x2f < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((int)uVar11 < (int)local_4c)" ( (binary_expression "(int)uVar11 < (int)local_4c" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" { (labeled_statement "LAB_003c883c:\n      uVar11 = uVar11 - 0x30;" statement_identifier : (expression_statement "uVar11 = uVar11 - 0x30;" (assignment_expression "uVar11 = uVar11 - 0x30" identifier = (binary_expression "uVar11 - 0x30" identifier - number_literal)) ;)) (labeled_statement "LAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" if (parenthesized_expression "(uVar20 < CONCAT44(uVar5,local_54))" ( (binary_expression "uVar20 < CONCAT44(uVar5,local_54)" identifier < (call_expression "CONCAT44(uVar5,local_54)" identifier (argument_list "(uVar5,local_54)" ( identifier , identifier )))) )) (compound_statement "{\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }" { (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (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_003c8b5c;" 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_003c8b5c;" goto statement_identifier ;)) (labeled_statement "LAB_003c88e4:\n        local_res8[2] = uVar16 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" { (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c8b8c;" if (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)) )) (goto_statement "goto LAB_003c8b8c;" goto statement_identifier ;)) (labeled_statement "LAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 "uVar11 = (uint)(iVar8 == -1);" (assignment_expression "uVar11 = (uint)(iVar8 == -1)" identifier = (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n          uVar11 = 0;\n        }" else (compound_statement "{\n          uVar11 = 0;\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar11 == uVar16) goto LAB_003c8924;" if (parenthesized_expression "(uVar11 == uVar16)" ( (binary_expression "uVar11 == uVar16" identifier == identifier) )) (goto_statement "goto LAB_003c8924;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" else (compound_statement "{\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" { (expression_statement "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" identifier = (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar17 = ~((int)uVar11 >> 0x1f);" (assignment_expression "uVar17 = ~((int)uVar11 >> 0x1f)" identifier = (unary_expression "~((int)uVar11 >> 0x1f)" ~ (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" identifier = (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (if_statement "if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" if (parenthesized_expression "(uVar5 <= uVar17)" ( (binary_expression "uVar5 <= uVar17" identifier <= identifier) )) (compound_statement "{\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" { (if_statement "if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }" if (parenthesized_expression "(uVar5 == uVar17)" ( (binary_expression "uVar5 == uVar17" identifier == identifier) )) (compound_statement "{\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }" { (if_statement "if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }" if (parenthesized_expression "(uVar18 <= ~uVar11)" ( (binary_expression "uVar18 <= ~uVar11" identifier <= (unary_expression "~uVar11" ~ identifier)) )) (compound_statement "{\n              uVar16 = 0;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            uVar16 = 0;\n          }" else (compound_statement "{\n            uVar16 = 0;\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_54 = uVar11 + uVar18;" (assignment_expression "local_54 = uVar11 + uVar18" identifier = (binary_expression "uVar11 + uVar18" identifier + identifier)) ;) (expression_statement "local_58 = local_58 & 0xff | uVar16;" (assignment_expression "local_58 = local_58 & 0xff | uVar16" identifier = (binary_expression "local_58 & 0xff | uVar16" (binary_expression "local_58 & 0xff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" identifier = (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f)" (call_expression "(uint)(local_54 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar11)" ( (binary_expression "local_54 < uVar11" identifier < identifier) ))) + (parenthesized_expression "((int)uVar11 >> 0x1f)" ( (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "uVar16 = local_res8[2];" (assignment_expression "uVar16 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;" 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_003c88e4;" goto statement_identifier ;)) (labeled_statement "LAB_003c8b5c:\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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c88f0;" 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_003c88f0;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8910;" if (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)) )) (goto_statement "goto LAB_003c8910;" goto statement_identifier ;)) (labeled_statement "LAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" statement_identifier : (if_statement "if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" if (parenthesized_expression "(local_48 == uVar16)" ( (binary_expression "local_48 == uVar16" identifier == identifier) )) (compound_statement "{\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" { (labeled_statement "LAB_003c8924:\n          uVar16 = 1;" statement_identifier : (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_003c8928;" goto statement_identifier ;) }))) }))) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar16 = local_resc;" (assignment_expression "uVar16 = local_resc" identifier = identifier) ;) (if_statement "if (bVar10) goto LAB_003c8824;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_003c8824;" goto statement_identifier ;)) (labeled_statement "LAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;" statement_identifier : (expression_statement "uVar16 = uVar16 & 0xff;" (assignment_expression "uVar16 = uVar16 & 0xff" identifier = (binary_expression "uVar16 & 0xff" identifier & number_literal)) ;)) (if_statement "if (uVar16 - 0x30 < 10) goto LAB_003c883c;" if (parenthesized_expression "(uVar16 - 0x30 < 10)" ( (binary_expression "uVar16 - 0x30 < 10" (binary_expression "uVar16 - 0x30" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_003c883c;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" else (compound_statement "{\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" { (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) (goto_statement "goto LAB_003c881c;" goto statement_identifier ;) })) (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (iVar8 != -1) goto LAB_003c881c;" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (goto_statement "goto LAB_003c881c;" 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 (bVar10) goto LAB_003c8bf4;" if (parenthesized_expression "(bVar10)" ( identifier )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "uVar16 = 0xff;" (assignment_expression "uVar16 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }))) (if_statement "if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" if (parenthesized_expression "(uVar16 - 0x61 < 6)" ( (binary_expression "uVar16 - 0x61 < 6" (binary_expression "uVar16 - 0x61" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar11 = uVar11 - 0x57;\n      }" { (expression_statement "uVar11 = uVar11 - 0x57;" (assignment_expression "uVar11 = uVar11 - 0x57" identifier = (binary_expression "uVar11 - 0x57" identifier - number_literal)) ;) }) (else_clause "else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" else (compound_statement "{\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" { (expression_statement "uVar11 = uVar11 - 0x37;" (assignment_expression "uVar11 = uVar11 - 0x37" identifier = (binary_expression "uVar11 - 0x37" identifier - number_literal)) ;) (if_statement "if (5 < uVar16 - 0x41) goto LAB_003c8bf4;" if (parenthesized_expression "(5 < uVar16 - 0x41)" ( (binary_expression "5 < uVar16 - 0x41" number_literal < (binary_expression "uVar16 - 0x41" identifier - number_literal)) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_003c8844;" goto statement_identifier ;) }))) (labeled_statement "LAB_003c8bf4:\n    uVar16 = 0;" statement_identifier : (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;)) (if_statement "if (local_6c != 0) goto LAB_003c8c04;" if (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c8c04;" goto statement_identifier ;)) (labeled_statement "LAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" statement_identifier : (if_statement "if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" 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)" ( (unary_expression "!bVar13" ! identifier) ))) )) (goto_statement "goto LAB_003c8944;" goto statement_identifier ;))) (labeled_statement "LAB_003c8c80:\n    uVar4 = 0xffffffff;" statement_identifier : (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" if (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" { (if_statement "if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" { (expression_statement "local_54 = -local_54;" (assignment_expression "local_54 = -local_54" identifier = (unary_expression "-local_54" - identifier)) ;) (expression_statement "uVar5 = -(uint)(local_54 != 0) - uVar5;" (assignment_expression "uVar5 = -(uint)(local_54 != 0) - uVar5" identifier = (binary_expression "-(uint)(local_54 != 0) - uVar5" (unary_expression "-(uint)(local_54 != 0)" - (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) - identifier)) ;) })) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" * identifier) = identifier) ;) (expression_statement "param_9[1] = local_54;" (assignment_expression "param_9[1] = local_54" (subscript_expression "param_9[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_003c8960;" goto statement_identifier ;) })) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" else (compound_statement "{\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" { (if_statement "if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_2c = &local_70;" (assignment_expression "local_2c = &local_70" identifier = (pointer_expression "&local_70" & identifier)) ;) (expression_statement "local_34 = (uint)(param_6 == -1);" (assignment_expression "local_34 = (uint)(param_6 == -1)" identifier = (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )))) ;) (expression_statement "local_3c = iVar12 + 0x4e;" (assignment_expression "local_3c = iVar12 + 0x4e" identifier = (binary_expression "iVar12 + 0x4e" identifier + number_literal)) ;) (labeled_statement "LAB_003c8e5c:\n      iVar8 = local_3c;" statement_identifier : (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" identifier = identifier) ;)) (expression_statement "uVar16 = local_6c;" (assignment_expression "uVar16 = local_6c" identifier = identifier) ;) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar12 + 0x10);" (assignment_expression "local_4c = (uint)*(byte *)(iVar12 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar12 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar12 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" if (parenthesized_expression "((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11))" ( (binary_expression "(local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)" (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) || (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) != uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x25) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x25)" * (cast_expression "(char *)(iVar12 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25)" ( (binary_expression "iVar12 + 0x25" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }" { (if_statement "if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;" if (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" ( (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar12 + 0x24)" * (cast_expression "(char *)(iVar12 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) == identifier) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" identifier = (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" (parenthesized_expression "(*(code *)PTR_memchr_004c5ac8)" ( (pointer_expression "*(code *)PTR_memchr_004c5ac8" * (cast_expression "(code *)PTR_memchr_004c5ac8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,uVar11,local_48)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_003c8bf4;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8bf4;" goto statement_identifier ;)) (expression_statement "uVar16 = iVar6 - iVar8;" (assignment_expression "uVar16 = iVar6 - iVar8" identifier = (binary_expression "iVar6 - iVar8" identifier - identifier)) ;) (if_statement "if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }" if (parenthesized_expression "(0xf < (int)uVar16)" ( (binary_expression "0xf < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) 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 ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" if (parenthesized_expression "((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44))))" ( (binary_expression "(uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))" (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) && (parenthesized_expression "((uVar5 != local_50 || (local_54 <= local_44)))" ( (parenthesized_expression "(uVar5 != local_50 || (local_54 <= local_44))" ( (binary_expression "uVar5 != local_50 || (local_54 <= local_44)" (binary_expression "uVar5 != local_50" identifier != identifier) || (parenthesized_expression "(local_54 <= local_44)" ( (binary_expression "local_54 <= local_44" identifier <= identifier) ))) )) ))) )) (compound_statement "{\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" { (expression_statement "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" identifier = (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar18 = ~((int)uVar16 >> 0x1f);" (assignment_expression "uVar18 = ~((int)uVar16 >> 0x1f)" identifier = (unary_expression "~((int)uVar16 >> 0x1f)" ~ (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" identifier = (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" identifier * identifier) + (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" ( (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_54" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))))) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (if_statement "if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" if (parenthesized_expression "(uVar5 <= uVar18)" ( (binary_expression "uVar5 <= uVar18" identifier <= identifier) )) (compound_statement "{\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" { (if_statement "if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }" if (parenthesized_expression "(uVar5 == uVar18)" ( (binary_expression "uVar5 == uVar18" identifier == identifier) )) (compound_statement "{\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }" { (if_statement "if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }" if (parenthesized_expression "(uVar19 <= ~uVar16)" ( (binary_expression "uVar19 <= ~uVar16" identifier <= (unary_expression "~uVar16" ~ identifier)) )) (compound_statement "{\n                uVar11 = 0;\n              }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n              uVar11 = 0;\n            }" else (compound_statement "{\n              uVar11 = 0;\n            }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_54 = uVar16 + uVar19;" (assignment_expression "local_54 = uVar16 + uVar19" identifier = (binary_expression "uVar16 + uVar19" identifier + identifier)) ;) (expression_statement "local_58 = local_58 & 0xff | uVar11;" (assignment_expression "local_58 = local_58 & 0xff | uVar11" identifier = (binary_expression "local_58 & 0xff | uVar11" (binary_expression "local_58 & 0xff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" identifier = (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f)" (call_expression "(uint)(local_54 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar16)" ( (binary_expression "local_54 < uVar16" identifier < identifier) ))) + (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + identifier)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_003c8f38;" 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_58 = uVar17;" (assignment_expression "local_58 = uVar17" identifier = identifier) ;) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;" 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_003c8fcc;" goto statement_identifier ;)) (labeled_statement "LAB_003c8f50:\n        local_res8[2] = uVar16 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar16 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" ( (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_res8[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[2]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) })) }) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" else (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" { (if_statement "if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" { (if_statement "if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (compound_statement "{\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" { (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) (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_003c8978;" 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_003c8c0c;" goto statement_identifier ;) })) (expression_statement "local_4c = (uint)(char)iVar3;" (assignment_expression "local_4c = (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_6c + 1;" (assignment_expression "local_30 = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) (if_statement "if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }" if (parenthesized_expression "(local_70 != local_40)" ( (binary_expression "local_70 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar11 = local_68[0];\n        }" { (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" identifier = (subscript_expression "local_68[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" if (parenthesized_expression "(uVar11 < local_6c + 1)" ( (binary_expression "uVar11 < local_6c + 1" identifier < (binary_expression "local_6c + 1" identifier + number_literal)) )) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" ( (pointer_expression "*(code *)PTR__M_mutate_004c2090" * (cast_expression "(code *)PTR__M_mutate_004c2090" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2c,local_6c,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) (expression_statement "local_6c = local_30;" (assignment_expression "local_6c = local_30" identifier = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_70 + uVar16) = (char)local_4c;" (assignment_expression "*(char *)((int)local_70 + uVar16) = (char)local_4c" (pointer_expression "*(char *)((int)local_70 + uVar16)" * (cast_expression "(char *)((int)local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar16)" ( (binary_expression "(int)local_70 + uVar16" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_4c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_70 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + local_30)" * (cast_expression "(undefined1 *)((int)local_70 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + local_30)" ( (binary_expression "(int)local_70 + local_30" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_003c8f38:\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_003c8f50;" 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_003c8f50;" goto statement_identifier ;)) (labeled_statement "LAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) 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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c8f5c;" 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_003c8f5c;" goto statement_identifier ;)) }))) (expression_statement "uVar18 = local_34;" (assignment_expression "uVar18 = local_34" identifier = identifier) ;) (if_statement "if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" if (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)) )) (compound_statement "{\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" { (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) }) (else_clause "else {\n              uVar18 = 0;\n            }" else (compound_statement "{\n              uVar18 = 0;\n            }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n          uVar18 = 0;\n        }" else (compound_statement "{\n          uVar18 = 0;\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" if (parenthesized_expression "(uVar11 != uVar18)" ( (binary_expression "uVar11 != uVar18" identifier != identifier) )) (compound_statement "{\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" { (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" ( (binary_expression "local_resc != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n          uVar11 = (uint)(char)local_resc;\n        }" { (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" identifier = (cast_expression "(uint)(char)local_resc" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)local_resc" ( (type_descriptor "char" primitive_type) ) identifier))) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" if (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" ( (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])) < (cast_expression "(char *)local_res8[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" identifier = (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)local_res8[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_res8[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" { (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(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 "()" ( )))) ;) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" identifier = (cast_expression "(uint)(char)iVar8" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) }))))) (goto_statement "goto LAB_003c8e5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" else (compound_statement "{\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;" statement_identifier : (if_statement "if (local_6c == 0) goto LAB_003c8934;" if (parenthesized_expression "(local_6c == 0)" ( (binary_expression "local_6c == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8934;" goto statement_identifier ;))) (labeled_statement "LAB_003c8c04:\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_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c8c0c:\n    uVar4 = local_6c;" statement_identifier : (expression_statement "uVar4 = local_6c;" (assignment_expression "uVar4 = local_6c" identifier = identifier) ;)) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = local_6c + 1;" (assignment_expression "uVar17 = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" identifier = (subscript_expression "local_68[0]" identifier [ number_literal ])) ;) (if_statement "if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }" if (parenthesized_expression "(local_70 == local_40)" ( (binary_expression "local_70 == local_40" identifier == identifier) )) (compound_statement "{\n      uVar11 = 0xf;\n    }" { (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" if (parenthesized_expression "(uVar11 < uVar17)" ( (binary_expression "uVar11 < uVar17" identifier < identifier) )) (compound_statement "{\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" ( (pointer_expression "*(code *)PTR__M_mutate_004c2090" * (cast_expression "(code *)PTR__M_mutate_004c2090" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((string *)&local_70,local_6c,0,0,1)" ( (cast_expression "(string *)&local_70" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) })) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_70 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_70 + uVar4)" * (cast_expression "(undefined1 *)((int)local_70 + uVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar4)" ( (binary_expression "(int)local_70 + uVar4" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_70 + uVar17) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar17) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + uVar17)" * (cast_expression "(undefined1 *)((int)local_70 + uVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_70 + uVar17)" ( (binary_expression "(int)local_70 + uVar17" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_6c = uVar17;" (assignment_expression "local_6c = uVar17" identifier = identifier) ;) (ERROR "iVar12 = std::" (assignment_expression "iVar12 = std" identifier = identifier) : :) (expression_statement "__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);" (call_expression "__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" identifier (argument_list "(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" ( (pointer_expression "*(char **)(iVar12 + 8)" * (cast_expression "(char **)(iVar12 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar12 + 0xc)" * (cast_expression "(uint *)(iVar12 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) , (cast_expression "(string *)&local_70" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier)) ))) ;) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" identifier = (call_expression "CONCAT44(local_50,local_44)" identifier (argument_list "(local_50,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n      *param_8 = 4;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 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_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;" if (parenthesized_expression "((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0))" ( (binary_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0))" ( (binary_expression "((iVar3 != 0) || (bVar13)) || (local_6c != 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_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_003c8c80;" goto statement_identifier ;)) (labeled_statement "LAB_003c8944:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) (expression_statement "param_9[1] = uVar4;" (assignment_expression "param_9[1] = uVar4" (subscript_expression "param_9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_9 = uVar11;" (assignment_expression "*param_9 = uVar11" (pointer_expression "*param_9" * identifier) = identifier) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_003c8960:\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_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);" statement_identifier : (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" identifier = (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 >> 0x20)" ( (binary_expression "uVar20 >> 0x20" identifier >> number_literal) )))) ;)) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" identifier = (cast_expression "(uint)uVar20" ( (type_descriptor "uint" type_identifier) ) 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_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_70 != local_40)" ( (binary_expression "local_70 != local_40" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return param_1;" return identifier ;) (labeled_statement "LAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" identifier = (pointer_expression "*(char *)(iVar12 + 0x10)" * (cast_expression "(char *)(iVar12 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x003c8b00;" goto statement_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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) , (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) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == IDENT) )) (goto_statement goto statement_identifier ;))) }) (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) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = BOOL) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 = BOOL) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (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) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (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 = (binary_expression (parenthesized_expression ( IDENT )) * (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) }))))) (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 (cast_expression ( (type_descriptor TYPE) ) (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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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) ;) (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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == IDENT) ))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (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 = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 = BOOL) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == IDENT) ))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == IDENT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 (assignment_expression IDENT = LIT) ;)) (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)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ;) (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 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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 = LIT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (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 = (binary_expression (parenthesized_expression ( IDENT )) * (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) }))))) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (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) ))))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (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 = (call_expression IDENT (argument_list ( LIT , LIT , LIT , 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 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (char_literal ' character ')) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) (compound_statement { (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)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_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 ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (unary_expression ~ IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (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)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) }))) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (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 (binary_expression IDENT - LIT) < 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 = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (goto_statement goto statement_identifier ;) })) (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (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 ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) (else_clause else (compound_statement { (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 ;) }))) (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 : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) - IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (unary_expression ~ IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_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 ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) })) }) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 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 = (call_expression IDENT (argument_list ( 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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (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 = (binary_expression (parenthesized_expression ( IDENT )) * (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) }))))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 : (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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , IDENT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression 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) )))) = 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) ;) (ERROR (assignment_expression IDENT = IDENT) : :) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 ;) (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 ;) })))
(function_definition "undefined4 *\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}" (type_identifier "undefined4") (pointer_declarator "*\nFUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" (* "*") (function_declarator "FUN_003c8604(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" (identifier "FUN_003c8604") (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,uint param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (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 "uint param_4" (type_identifier "uint") (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  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  char cVar9;\n  int iVar8;\n  bool bVar10;\n  uint uVar11;\n  int iVar12;\n  bool bVar13;\n  int *piVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  ulonglong uVar20;\n  int *local_res8;\n  uint local_resc;\n  uint *local_70;\n  uint local_6c;\n  uint local_68 [4];\n  uint local_58;\n  uint local_54;\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  uint **local_2c;\n  \n  local_res8 = param_3;\n  local_resc = param_4;\n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar12 = *piVar14;\n  if (iVar12 == 0) {\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }\n  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar16 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }\n  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);\n  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }\n  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;\n  if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }\n  if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }\n  if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 1;\n  iVar3 = 0;\n  bVar13 = false;\njoined_r0x003c8b00:\n  local_48 = uVar4;\n  if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }\njoined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;\n  local_6c = 0;\n  local_70 = local_68;\n  local_40 = local_70;\n  if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }\n  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);\n  uVar17 = (uint)*(byte *)(iVar12 + 100);\n  uVar5 = uVar16;\n  if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }\n  param_9[1] = uVar4;\n  *param_9 = uVar11;\n  *param_8 = 4;\nLAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);\n  local_44 = (uint)uVar20;\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);\n  uVar16 = 0;\n  goto joined_r0x003c8b00;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (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 "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (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 "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "ulonglong uVar20;" (type_identifier "ulonglong") (identifier "uVar20") (; ";")) (declaration "int *local_res8;" (primitive_type "int") (pointer_declarator "*local_res8" (* "*") (identifier "local_res8")) (; ";")) (declaration "uint local_resc;" (type_identifier "uint") (identifier "local_resc") (; ";")) (declaration "uint *local_70;" (type_identifier "uint") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "uint local_68 [4];" (type_identifier "uint") (array_declarator "local_68 [4]" (identifier "local_68") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (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") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "uint **local_2c;" (type_identifier "uint") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (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_004c2c74)(PTR_id_004c32f8);" (assignment_expression "iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8)" (parenthesized_expression "(*(code *)PTR__M_id_004c2c74)" (( "(") (pointer_expression "*(code *)PTR__M_id_004c2c74" (* "*") (cast_expression "(code *)PTR__M_id_004c2c74" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_id_004c2c74"))) () ")")) (argument_list "(PTR_id_004c32f8)" (( "(") (identifier "PTR_id_004c32f8") () ")")))) (; ";")) (expression_statement "piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" (identifier "piVar14") (= "=") (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 "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" (identifier "iVar12") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (if_statement "if (iVar12 == 0) {\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar2 = PTR__M_cache_004c2d40;\n    puVar1 = PTR_vtable_004c13b0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    *puVar7 = puVar1 + 8;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    *(undefined2 *)(puVar7 + 9) = 0;\n                    \n    *(undefined1 *)(puVar7 + 0x19) = 0;\n    (*(code *)puVar2)(puVar7,param_7 + 0x6c);\n    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);\n    iVar12 = *piVar14;\n  }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x68)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x68)" (( "(") (number_literal "0x68") () ")"))))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = PTR__M_cache_004c2d40;" (assignment_expression "puVar2 = PTR__M_cache_004c2d40" (identifier "puVar2") (= "=") (identifier "PTR__M_cache_004c2d40")) (; ";")) (expression_statement "puVar1 = PTR_vtable_004c13b0;" (assignment_expression "puVar1 = PTR_vtable_004c13b0" (identifier "puVar1") (= "=") (identifier "PTR_vtable_004c13b0")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar7 = puVar1 + 8;" (assignment_expression "*puVar7 = puVar1 + 8" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "puVar1 + 8" (identifier "puVar1") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar7 + 9) = 0;" (assignment_expression "*(undefined2 *)(puVar7 + 9) = 0" (pointer_expression "*(undefined2 *)(puVar7 + 9)" (* "*") (cast_expression "(undefined2 *)(puVar7 + 9)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 9)" (( "(") (binary_expression "puVar7 + 9" (identifier "puVar7") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 0x19) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x19) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x19)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 0x19)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x19)" (( "(") (binary_expression "puVar7 + 0x19" (identifier "puVar7") (+ "+") (number_literal "0x19")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar2)(puVar7,param_7 + 0x6c);" (call_expression "(*(code *)puVar2)(puVar7,param_7 + 0x6c)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(puVar7,param_7 + 0x6c)" (( "(") (identifier "puVar7") (, ",") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);" (call_expression "(*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3)" (parenthesized_expression "(*(code *)PTR__M_install_cache_004c2d18)" (( "(") (pointer_expression "*(code *)PTR__M_install_cache_004c2d18" (* "*") (cast_expression "(code *)PTR__M_install_cache_004c2d18" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_install_cache_004c2d18"))) () ")")) (argument_list "(*(undefined4 *)(param_7 + 0x6c),puVar7,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 "puVar7") (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "iVar12 = *piVar14;" (assignment_expression "iVar12 = *piVar14" (identifier "iVar12") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (} "}"))) (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    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" (if "if") (parenthesized_expression "(uVar16 == 0x40)" (( "(") (binary_expression "uVar16 == 0x40" (identifier "uVar16") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c90b4;\nLAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c86cc;\nLAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;\n  }" ({ "{") (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (if_statement "if (local_res8 == (int *)0x0) goto LAB_003c90b4;" (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"))) () ")")) (goto_statement "goto LAB_003c90b4;" (goto "goto") (statement_identifier "LAB_003c90b4") (; ";"))) (labeled_statement "LAB_003c86b4:\n    if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" (statement_identifier "LAB_003c86b4") (: ":") (if_statement "if (local_resc == 0xffffffff) {\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }\n    else {\n      bVar13 = false;\n    }" (if "if") (parenthesized_expression "(local_resc == 0xffffffff)" (( "(") (binary_expression "local_resc == 0xffffffff" (identifier "local_resc") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      bVar13 = false;\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }\n    }" ({ "{") (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        local_res8 = (int *)0x0;\n        bVar13 = true;\n      }" (if "if") (parenthesized_expression "(((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1))" (( "(") (binary_expression "((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" (( "(") (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)local_res8[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (( "(") (comma_expression "iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1" (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 "()" (( "(") () ")")))) (, ",") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (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")) (; ";")) (} "}"))))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c86cc;" (if "if") (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"))) () ")")) (goto_statement "goto LAB_003c86cc;" (goto "goto") (statement_identifier "LAB_003c86cc") (; ";"))) (labeled_statement "LAB_003c90c4:\n    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" (statement_identifier "LAB_003c90c4") (: ":") (if_statement "if ((param_6 == -1) == bVar13) goto LAB_003c90d0;" (if "if") (parenthesized_expression "((param_6 == -1) == bVar13)" (( "(") (binary_expression "(param_6 == -1) == bVar13" (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (== "==") (identifier "bVar13")) () ")")) (goto_statement "goto LAB_003c90d0;" (goto "goto") (statement_identifier "LAB_003c90d0") (; ";")))) (} "}")) (else_clause "else {\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = 10;\n    if (uVar16 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c86b4;\nLAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;\n    if (param_5 == (int *)0x0) goto LAB_003c90c4;\nLAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }\n    if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\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")) (; ";")) (} "}"))) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c86b4;" (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"))) () ")")) (goto_statement "goto LAB_003c86b4;" (goto "goto") (statement_identifier "LAB_003c86b4") (; ";"))) (labeled_statement "LAB_003c90b4:\n    bVar13 = local_resc == 0xffffffff;" (statement_identifier "LAB_003c90b4") (: ":") (expression_statement "bVar13 = local_resc == 0xffffffff;" (assignment_expression "bVar13 = local_resc == 0xffffffff" (identifier "bVar13") (= "=") (binary_expression "local_resc == 0xffffffff" (identifier "local_resc") (== "==") (number_literal "0xffffffff"))) (; ";"))) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c90c4;" (if "if") (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"))) () ")")) (goto_statement "goto LAB_003c90c4;" (goto "goto") (statement_identifier "LAB_003c90c4") (; ";"))) (labeled_statement "LAB_003c86cc:\n    if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" (statement_identifier "LAB_003c86cc") (: ":") (if_statement "if (param_6 == -1) {\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }\n    else {\n      bVar10 = false;\n    }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      bVar10 = false;\n      if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }\n    }" ({ "{") (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\n        if (iVar3 == -1) {\n          param_5 = (int *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" (( "(") (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n        bVar10 = iVar3 == -1;\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") () ")")))) (; ";")) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" (identifier "bVar10") (= "=") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1"))) (; ";")) (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      bVar10 = false;\n    }" (else "else") (compound_statement "{\n      bVar10 = false;\n    }" ({ "{") (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (} "}"))))) (if_statement "if (bVar10 == bVar13) {\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" (if "if") (parenthesized_expression "(bVar10 == bVar13)" (( "(") (binary_expression "bVar10 == bVar13" (identifier "bVar10") (== "==") (identifier "bVar13")) () ")")) (compound_statement "{\nLAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);\n      uVar16 = 1;\n      local_38 = 0;\n      uVar11 = 0;\n      iVar3 = 0;\n      bVar13 = false;\n      goto joined_r0x003c8b00;\n    }" ({ "{") (labeled_statement "LAB_003c90d0:\n      cVar9 = *(char *)(iVar12 + 0x10);" (statement_identifier "LAB_003c90d0") (: ":") (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar12 + 0x10)" (* "*") (cast_expression "(char *)(iVar12 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (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 "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (goto_statement "goto joined_r0x003c8b00;" (goto "goto") (statement_identifier "joined_r0x003c8b00") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n    uVar11 = (uint)(char)local_resc;\n  }\n  else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" (( "(") (binary_expression "local_resc != 0xffffffff" (identifier "local_resc") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n    uVar11 = (uint)(char)local_resc;\n  }" ({ "{") (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)local_resc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)local_resc" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_resc")))) (; ";")) (} "}")) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" (else "else") (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n    uVar11 = (uint)*(char *)local_res8[2];\n  }\n  else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" (if "if") (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" (( "(") (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(char *)local_res8[3]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n    uVar11 = (uint)*(char *)local_res8[2];\n  }" ({ "{") (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" (identifier "uVar11") (= "=") (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\n  }" (else "else") (compound_statement "{\n    iVar3 = (**(code **)(*local_res8 + 0x24))();\n    if (iVar3 == -1) {\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }\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      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }\n    else {\n      uVar11 = (uint)(char)iVar3;\n    }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar11 = 0xffffffff;\n      local_res8 = (int *)0x0;\n    }" ({ "{") (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffff")) (; ";")) (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      uVar11 = (uint)(char)iVar3;\n    }" (else "else") (compound_statement "{\n      uVar11 = (uint)(char)iVar3;\n    }" ({ "{") (expression_statement "uVar11 = (uint)(char)iVar3;" (assignment_expression "uVar11 = (uint)(char)iVar3" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)iVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)iVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar3")))) (; ";")) (} "}")))) (} "}")))))) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar12 + 0x10)" (* "*") (cast_expression "(char *)(iVar12 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" (identifier "local_38") (= "=") (call_expression "(uint)((int)*(char *)(iVar12 + 0x4a) == uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)*(char *)(iVar12 + 0x4a) == uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x4a) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x4a)" (* "*") (cast_expression "(char *)(iVar12 + 0x4a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x4a)" (( "(") (binary_expression "iVar12 + 0x4a" (identifier "iVar12") (+ "+") (number_literal "0x4a")) () ")"))))) (== "==") (identifier "uVar11")) () ")")))) (; ";")) (if_statement "if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" (if "if") (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11))" (( "(") (binary_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4a) != uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x4a) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x4a)" (* "*") (cast_expression "(char *)(iVar12 + 0x4a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x4a)" (( "(") (binary_expression "iVar12 + 0x4a" (identifier "iVar12") (+ "+") (number_literal "0x4a")) () ")"))))) (!= "!=") (identifier "uVar11")) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar12 + 0x4b) != uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x4b) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4b)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x4b)" (* "*") (cast_expression "(char *)(iVar12 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x4b)" (( "(") (binary_expression "iVar12 + 0x4b" (identifier "iVar12") (+ "+") (number_literal "0x4b")) () ")"))))) (!= "!=") (identifier "uVar11")) () ")"))) () ")")) (compound_statement "{\n    local_38 = 0;\n    goto LAB_003c8a14;\n  }" ({ "{") (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c8a14;" (goto "goto") (statement_identifier "LAB_003c8a14") (; ";")) (} "}"))) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;" (if "if") (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11))" (( "(") (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n     ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" (( "(") (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x25)" (* "*") (cast_expression "(char *)(iVar12 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x25)" (( "(") (binary_expression "iVar12 + 0x25" (identifier "iVar12") (+ "+") (number_literal "0x25")) () ")"))))) (== "==") (identifier "uVar11")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x24)" (* "*") (cast_expression "(char *)(iVar12 + 0x24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (== "==") (identifier "uVar11")) () ")"))) () ")")) (goto_statement "goto LAB_003c8a14;" (goto "goto") (statement_identifier "LAB_003c8a14") (; ";"))) (if_statement "if ((uint)local_res8[2] < (uint)local_res8[3]) {\n    local_res8[2] = local_res8[2] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }\n  else {\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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] + 1;\n    uVar5 = local_res8[2];\nLAB_003c8768:\n    local_resc = 0xffffffff;\n    bVar13 = false;\n    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }\n  }" ({ "{") (expression_statement "local_res8[2] = local_res8[2] + 1;" (assignment_expression "local_res8[2] = local_res8[2] + 1" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_res8[2] + 1" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" (identifier "uVar5") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (labeled_statement "LAB_003c8768:\n    local_resc = 0xffffffff;" (statement_identifier "LAB_003c8768") (: ":") (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (if_statement "if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       ) {\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" (if "if") (parenthesized_expression "(((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)\n       )" (( "(") (binary_expression "((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (parenthesized_expression "((uint)local_res8[3] <= uVar5)" (( "(") (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar5")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)" (( "(") (comma_expression "iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1" (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 "()" (( "(") () ")")))) (, ",") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1"))) () ")"))) () ")")) (compound_statement "{\n      bVar13 = true;\n      local_res8 = (int *)0x0;\n    }" ({ "{") (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (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    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }\n  }" (else "else") (compound_statement "{\n    bVar13 = true;\n    (**(code **)(*local_res8 + 0x28))();\n    local_resc = 0xffffffff;\n    if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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 = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) {\n      uVar5 = local_res8[2];\n      goto LAB_003c8768;\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      uVar5 = local_res8[2];\n      goto LAB_003c8768;\n    }" ({ "{") (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" (identifier "uVar5") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (goto_statement "goto LAB_003c8768;" (goto "goto") (statement_identifier "LAB_003c8768") (; ";")) (} "}"))) (} "}")))) (if_statement "if (param_5 == (int *)0x0) {\n    bVar10 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" (if "if") (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"))) () ")")) (compound_statement "{\n    bVar10 = param_6 == -1;\n  }" ({ "{") (expression_statement "bVar10 = param_6 == -1;" (assignment_expression "bVar10 = param_6 == -1" (identifier "bVar10") (= "=") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" (else "else") (if_statement "if (param_6 == -1) {\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }\n  else {\n    bVar10 = false;\n  }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    bVar10 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }\n  }" ({ "{") (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\n      if (iVar3 == -1) {\n        param_5 = (int *)0x0;\n      }\n    }" (if "if") (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" (( "(") (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);\n      bVar10 = iVar3 == -1;\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") () ")")))) (; ";")) (expression_statement "bVar10 = iVar3 == -1;" (assignment_expression "bVar10 = iVar3 == -1" (identifier "bVar10") (= "=") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1"))) (; ";")) (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    bVar10 = false;\n  }" (else "else") (compound_statement "{\n    bVar10 = false;\n  }" ({ "{") (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (} "}")))))) (if_statement "if (bVar10 != bVar13) {\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" (if "if") (parenthesized_expression "(bVar10 != bVar13)" (( "(") (binary_expression "bVar10 != bVar13" (identifier "bVar10") (!= "!=") (identifier "bVar13")) () ")")) (compound_statement "{\n    cVar9 = FUN_003c05e4(&local_res8,local_resc);\n    uVar11 = (uint)cVar9;\n    cVar9 = *(char *)(iVar12 + 0x10);\nLAB_003c8a14:\n    iVar3 = 0;\n    local_58 = (uint)(param_6 == -1);\n    bVar13 = false;\n    do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );\n  }" ({ "{") (expression_statement "cVar9 = FUN_003c05e4(&local_res8,local_resc);" (assignment_expression "cVar9 = FUN_003c05e4(&local_res8,local_resc)" (identifier "cVar9") (= "=") (call_expression "FUN_003c05e4(&local_res8,local_resc)" (identifier "FUN_003c05e4") (argument_list "(&local_res8,local_resc)" (( "(") (pointer_expression "&local_res8" (& "&") (identifier "local_res8")) (, ",") (identifier "local_resc") () ")")))) (; ";")) (expression_statement "uVar11 = (uint)cVar9;" (assignment_expression "uVar11 = (uint)cVar9" (identifier "uVar11") (= "=") (cast_expression "(uint)cVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "cVar9"))) (; ";")) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar12 + 0x10)" (* "*") (cast_expression "(char *)(iVar12 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (labeled_statement "LAB_003c8a14:\n    iVar3 = 0;" (statement_identifier "LAB_003c8a14") (: ":") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_58 = (uint)(param_6 == -1);" (assignment_expression "local_58 = (uint)(param_6 == -1)" (identifier "local_58") (= "=") (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (do_statement "do {\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    } while( true );" (do "do") (compound_statement "{\n      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }\n      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }\n      if (!bVar13) goto LAB_003c93b4;\n      cVar9 = *(char *)(iVar12 + 0x10);\n    }" ({ "{") (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" (if "if") (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11))" (( "(") (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||\n         ((int)*(char *)(iVar12 + 0x24) == uVar11)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11))" (( "(") (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)" (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) == uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x25) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x25)" (* "*") (cast_expression "(char *)(iVar12 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x25)" (( "(") (binary_expression "iVar12 + 0x25" (identifier "iVar12") (+ "+") (number_literal "0x25")) () ")"))))) (== "==") (identifier "uVar11")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x24)" (* "*") (cast_expression "(char *)(iVar12 + 0x24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (== "==") (identifier "uVar11")) () ")"))) () ")")) (compound_statement "{\nLAB_003c8e28:\n        uVar16 = 0;\n        goto joined_r0x003c8b00;\n      }" ({ "{") (labeled_statement "LAB_003c8e28:\n        uVar16 = 0;" (statement_identifier "LAB_003c8e28") (: ":") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto joined_r0x003c8b00;" (goto "goto") (statement_identifier "joined_r0x003c8b00") (; ";")) (} "}"))) (if_statement "if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }\n      else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" (if "if") (parenthesized_expression "((int)*(char *)(iVar12 + 0x4e) == uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x4e) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4e)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x4e)" (* "*") (cast_expression "(char *)(iVar12 + 0x4e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x4e)" (( "(") (binary_expression "iVar12 + 0x4e" (identifier "iVar12") (+ "+") (number_literal "0x4e")) () ")"))))) (== "==") (identifier "uVar11")) () ")")) (compound_statement "{\n        if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }\nLAB_003c8a94:\n        uVar5 = local_res8[2];\n        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;\nLAB_003c8cb0:\n        uVar5 = 1;\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c8abc;\n        if (param_5 != (int *)0x0) goto LAB_003c8adc;\nLAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }\n      }" ({ "{") (if_statement "if (bVar13) {\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n          if (uVar4 != 10) goto LAB_003c8a60;\n          if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }\n        }" ({ "{") (if_statement "if (uVar4 != 10) goto LAB_003c8a60;" (if "if") (parenthesized_expression "(uVar4 != 10)" (( "(") (binary_expression "uVar4 != 10" (identifier "uVar4") (!= "!=") (number_literal "10")) () ")")) (goto_statement "goto LAB_003c8a60;" (goto "goto") (statement_identifier "LAB_003c8a60") (; ";"))) (if_statement "if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = 0;\n            uVar4 = 8;\n          }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" (else "else") (compound_statement "{\nLAB_003c8db8:\n            iVar3 = iVar3 + 1;\n            bVar13 = true;\n          }" ({ "{") (labeled_statement "LAB_003c8db8:\n            iVar3 = iVar3 + 1;" (statement_identifier "LAB_003c8db8") (: ":") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (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            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\n            if (uVar4 != 8) goto LAB_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }" (else "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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }\n        }" ({ "{") (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (if_statement "if (uVar16 == 0) {\n            iVar3 = 0;\n            uVar4 = 8;\n          }\n          else {\n            if (uVar4 != 8) goto LAB_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = 0;\n            uVar4 = 8;\n          }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (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_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" (else "else") (compound_statement "{\n            if (uVar4 != 8) goto LAB_003c8db8;\n            iVar3 = 0;\n            bVar13 = true;\n          }" ({ "{") (if_statement "if (uVar4 != 8) goto LAB_003c8db8;" (if "if") (parenthesized_expression "(uVar4 != 8)" (( "(") (binary_expression "uVar4 != 8" (identifier "uVar4") (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_003c8db8;" (goto "goto") (statement_identifier "LAB_003c8db8") (; ";"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_003c8a94:\n        uVar5 = local_res8[2];" (statement_identifier "LAB_003c8a94") (: ":") (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" (identifier "uVar5") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;" (if "if") (parenthesized_expression "(uVar5 < (uint)local_res8[3])" (( "(") (binary_expression "uVar5 < (uint)local_res8[3]" (identifier "uVar5") (< "<") (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_003c8aac;" (goto "goto") (statement_identifier "LAB_003c8aac") (; ";"))) (labeled_statement "LAB_003c8cb0:\n        uVar5 = 1;" (statement_identifier "LAB_003c8cb0") (: ":") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";"))) (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 = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c8abc;" (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"))) () ")")) (goto_statement "goto LAB_003c8abc;" (goto "goto") (statement_identifier "LAB_003c8abc") (; ";"))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8adc;" (if "if") (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"))) () ")")) (goto_statement "goto LAB_003c8adc;" (goto "goto") (statement_identifier "LAB_003c8adc") (; ";"))) (labeled_statement "LAB_003c8cdc:\n        if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" (statement_identifier "LAB_003c8cdc") (: ":") (if_statement "if (local_58 == uVar5) {\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" (if "if") (parenthesized_expression "(local_58 == uVar5)" (( "(") (binary_expression "local_58 == uVar5" (identifier "local_58") (== "==") (identifier "uVar5")) () ")")) (compound_statement "{\nLAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);\n          uVar16 = 1;\n          goto joined_r0x003c8b00;\n        }" ({ "{") (labeled_statement "LAB_003c8af0:\n          cVar9 = *(char *)(iVar12 + 0x10);" (statement_identifier "LAB_003c8af0") (: ":") (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar12 + 0x10)" (* "*") (cast_expression "(char *)(iVar12 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto joined_r0x003c8b00;" (goto "goto") (statement_identifier "joined_r0x003c8b00") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" (else "else") (compound_statement "{\n        if (!bVar13) goto LAB_003c8e28;\nLAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }\n        if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }\n        iVar3 = 0;\n        bVar13 = false;\n        uVar5 = local_res8[2];\n        uVar4 = 0x10;\n        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;\nLAB_003c8aac:\n        local_res8[2] = uVar5 + 1;\nLAB_003c8abc:\n        local_resc = 0xffffffff;\n        uVar5 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8cdc;\nLAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }\n        if (uVar17 == uVar5) goto LAB_003c8af0;\n      }" ({ "{") (if_statement "if (!bVar13) goto LAB_003c8e28;" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (goto_statement "goto LAB_003c8e28;" (goto "goto") (statement_identifier "LAB_003c8e28") (; ";"))) (labeled_statement "LAB_003c8a60:\n        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" (statement_identifier "LAB_003c8a60") (: ":") (if_statement "if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))\n        {\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" (if "if") (parenthesized_expression "(((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))" (( "(") (binary_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11)" (parenthesized_expression "((int)*(char *)(iVar12 + 0x4c) != uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x4c) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x4c)" (* "*") (cast_expression "(char *)(iVar12 + 0x4c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x4c)" (( "(") (binary_expression "iVar12 + 0x4c" (identifier "iVar12") (+ "+") (number_literal "0x4c")) () ")"))))) (!= "!=") (identifier "uVar11")) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar12 + 0x4d) != uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x4d) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x4d)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x4d)" (* "*") (cast_expression "(char *)(iVar12 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x4d)" (( "(") (binary_expression "iVar12 + 0x4d" (identifier "iVar12") (+ "+") (number_literal "0x4d")) () ")"))))) (!= "!=") (identifier "uVar11")) () ")"))) () ")")) (compound_statement "{\n          bVar13 = true;\n          uVar16 = 0;\n          goto joined_r0x003c8b00;\n        }" ({ "{") (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto joined_r0x003c8b00;" (goto "goto") (statement_identifier "joined_r0x003c8b00") (; ";")) (} "}")))) (if_statement "if (uVar16 != 0) {\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          bVar13 = true;\n          if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }\n          uVar16 = 0;\n          local_48 = uVar4;\n          goto joined_r0x003c87bc;\n        }" ({ "{") (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (if_statement "if (uVar4 == 0x10) {\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }" (if "if") (parenthesized_expression "(uVar4 == 0x10)" (( "(") (binary_expression "uVar4 == 0x10" (identifier "uVar4") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n            iVar3 = 0;\n            bVar13 = false;\n            goto LAB_003c8a94;\n          }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_003c8a94;" (goto "goto") (statement_identifier "LAB_003c8a94") (; ";")) (} "}"))) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" (identifier "local_48") (= "=") (identifier "uVar4")) (; ";")) (goto_statement "goto joined_r0x003c87bc;" (goto "goto") (statement_identifier "joined_r0x003c87bc") (; ";")) (} "}"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "uVar5 = local_res8[2];" (assignment_expression "uVar5 = local_res8[2]" (identifier "uVar5") (= "=") (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] <= uVar5) goto LAB_003c8cb0;" (if "if") (parenthesized_expression "((uint)local_res8[3] <= uVar5)" (( "(") (binary_expression "(uint)local_res8[3] <= uVar5" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_003c8cb0;" (goto "goto") (statement_identifier "LAB_003c8cb0") (; ";"))) (labeled_statement "LAB_003c8aac:\n        local_res8[2] = uVar5 + 1;" (statement_identifier "LAB_003c8aac") (: ":") (expression_statement "local_res8[2] = uVar5 + 1;" (assignment_expression "local_res8[2] = uVar5 + 1" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_003c8abc:\n        local_resc = 0xffffffff;" (statement_identifier "LAB_003c8abc") (: ":") (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" (if "if") (parenthesized_expression "(((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1))" (( "(") (binary_expression "((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" (( "(") (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)local_res8[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)" (( "(") (comma_expression "iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1" (assignment_expression "iVar8 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar8") (= "=") (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 "()" (( "(") () ")")))) (, ",") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = 1;\n          local_res8 = (int *)0x0;\n        }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (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) goto LAB_003c8cdc;" (if "if") (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"))) () ")")) (goto_statement "goto LAB_003c8cdc;" (goto "goto") (statement_identifier "LAB_003c8cdc") (; ";"))) (labeled_statement "LAB_003c8adc:\n        if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" (statement_identifier "LAB_003c8adc") (: ":") (if_statement "if (param_6 == -1) {\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar17 = 0;\n        }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar17 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" (if "if") (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" (( "(") (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar17 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }" ({ "{") (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar8") (= "=") (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 = (uint)(iVar8 == -1);" (assignment_expression "uVar17 = (uint)(iVar8 == -1)" (identifier "uVar17") (= "=") (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (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          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 (uVar17 == uVar5) goto LAB_003c8af0;" (if "if") (parenthesized_expression "(uVar17 == uVar5)" (( "(") (binary_expression "uVar17 == uVar5" (identifier "uVar17") (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_003c8af0;" (goto "goto") (statement_identifier "LAB_003c8af0") (; ";"))) (} "}")))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n      }\n      else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" (( "(") (binary_expression "local_resc != 0xffffffff" (identifier "local_resc") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n        uVar11 = (uint)(char)local_resc;\n      }" ({ "{") (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)local_resc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)local_resc" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_resc")))) (; ";")) (} "}")) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" (else "else") (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n        uVar11 = (uint)*(char *)local_res8[2];\n      }\n      else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" (if "if") (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" (( "(") (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(char *)local_res8[3]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n        uVar11 = (uint)*(char *)local_res8[2];\n      }" ({ "{") (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" (identifier "uVar11") (= "=") (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" (else "else") (compound_statement "{\n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        if (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }\n      }" ({ "{") (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar8") (= "=") (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 (iVar8 == -1) {\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }\n        else {\n          uVar11 = (uint)(char)iVar8;\n        }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar11 = 0xffffffff;\n          local_res8 = (int *)0x0;\n        }" ({ "{") (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffff")) (; ";")) (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          uVar11 = (uint)(char)iVar8;\n        }" (else "else") (compound_statement "{\n          uVar11 = (uint)(char)iVar8;\n        }" ({ "{") (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)iVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)iVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar8")))) (; ";")) (} "}")))) (} "}")))))) (if_statement "if (!bVar13) goto LAB_003c93b4;" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (goto_statement "goto LAB_003c93b4;" (goto "goto") (statement_identifier "LAB_003c93b4") (; ";"))) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar12 + 0x10)" (* "*") (cast_expression "(char *)(iVar12 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar12 + 0x10)" (* "*") (cast_expression "(char *)(iVar12 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (labeled_statement "joined_r0x003c8b00:\n  local_48 = uVar4;" (statement_identifier "joined_r0x003c8b00") (: ":") (expression_statement "local_48 = uVar4;" (assignment_expression "local_48 = uVar4" (identifier "local_48") (= "=") (identifier "uVar4")) (; ";"))) (if_statement "if (uVar4 == 0x10) {\n    local_48 = 0x16;\n  }" (if "if") (parenthesized_expression "(uVar4 == 0x10)" (( "(") (binary_expression "uVar4 == 0x10" (identifier "uVar4") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n    local_48 = 0x16;\n  }" ({ "{") (expression_statement "local_48 = 0x16;" (assignment_expression "local_48 = 0x16" (identifier "local_48") (= "=") (number_literal "0x16")) (; ";")) (} "}"))) (labeled_statement "joined_r0x003c87bc:\n  local_68[0] = local_68[0] & 0xffffff;" (statement_identifier "joined_r0x003c87bc") (: ":") (expression_statement "local_68[0] = local_68[0] & 0xffffff;" (assignment_expression "local_68[0] = local_68[0] & 0xffffff" (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_68[0] & 0xffffff" (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff"))) (; ";"))) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" (identifier "local_70") (= "=") (identifier "local_68")) (; ";")) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" (identifier "local_40") (= "=") (identifier "local_70")) (; ";")) (if_statement "if (cVar9 != '\0') {\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_70 = local_68;\n    local_6c = 0;\n    local_40 = local_70;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);\n  }" ({ "{") (expression_statement "local_70 = local_68;" (assignment_expression "local_70 = local_68" (identifier "local_70") (= "=") (identifier "local_68")) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = local_70;" (assignment_expression "local_40 = local_70" (identifier "local_40") (= "=") (identifier "local_70")) (; ";")) (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_70,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_70,0x20)" (parenthesized_expression "(*(code *)PTR_reserve_004c2458)" (( "(") (pointer_expression "*(code *)PTR_reserve_004c2458" (* "*") (cast_expression "(code *)PTR_reserve_004c2458" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_reserve_004c2458"))) () ")")) (argument_list "(&local_70,0x20)" (( "(") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (number_literal "0x20") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);" (assignment_expression "uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4)" (identifier "uVar20") (= "=") (call_expression "FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4)" (identifier "FUN_003e7e30") (argument_list "(0xffffffff,0xffffffff,0,uVar4)" (( "(") (number_literal "0xffffffff") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0") (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(iVar12 + 100);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar12 + 100)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(iVar12 + 100)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar12 + 100)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 100)" (( "(") (binary_expression "iVar12 + 100" (identifier "iVar12") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar16;" (assignment_expression "uVar5 = uVar16" (identifier "uVar5") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (uVar17 == 0) {\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }\n  else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }\n    local_58 = 0;\n    local_54 = 0;\n    bVar10 = local_48 < 0xb;\n    local_4c = (uint)(char)((char)local_48 + '0');\n    local_48 = (uint)(param_6 == -1);\nLAB_003c881c:\n    uVar16 = uVar11;\n    if (!bVar10) goto LAB_003c8bb8;\nLAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }\nLAB_003c8bf4:\n    uVar16 = 0;\n    if (local_6c != 0) goto LAB_003c8c04;\nLAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;\nLAB_003c8c80:\n    uVar4 = 0xffffffff;\n    if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }\n    uVar11 = 0xffffffff;\n  }" ({ "{") (if_statement "if (uVar16 != 0) {\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_58 = 0;\n      uVar5 = 0;\n      local_54 = 0;\n      goto LAB_003c8928;\n    }" ({ "{") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c8928;" (goto "goto") (statement_identifier "LAB_003c8928") (; ";")) (} "}"))) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = local_48 < 0xb;" (assignment_expression "bVar10 = local_48 < 0xb" (identifier "bVar10") (= "=") (binary_expression "local_48 < 0xb" (identifier "local_48") (< "<") (number_literal "0xb"))) (; ";")) (expression_statement "local_4c = (uint)(char)((char)local_48 + '0');" (assignment_expression "local_4c = (uint)(char)((char)local_48 + '0')" (identifier "local_4c") (= "=") (call_expression "(uint)(char)((char)local_48 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (argument_list "((char)local_48 + '0')" (( "(") (binary_expression "(char)local_48 + '0'" (cast_expression "(char)local_48" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_48")) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")))) (; ";")) (expression_statement "local_48 = (uint)(param_6 == -1);" (assignment_expression "local_48 = (uint)(param_6 == -1)" (identifier "local_48") (= "=") (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")))) (; ";")) (labeled_statement "LAB_003c881c:\n    uVar16 = uVar11;" (statement_identifier "LAB_003c881c") (: ":") (expression_statement "uVar16 = uVar11;" (assignment_expression "uVar16 = uVar11" (identifier "uVar16") (= "=") (identifier "uVar11")) (; ";"))) (if_statement "if (!bVar10) goto LAB_003c8bb8;" (if "if") (parenthesized_expression "(!bVar10)" (( "(") (unary_expression "!bVar10" (! "!") (identifier "bVar10")) () ")")) (goto_statement "goto LAB_003c8bb8;" (goto "goto") (statement_identifier "LAB_003c8bb8") (; ";"))) (labeled_statement "LAB_003c8824:\n    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" (statement_identifier "LAB_003c8824") (: ":") (if_statement "if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" (if "if") (parenthesized_expression "((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c))" (( "(") (binary_expression "(0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)" (parenthesized_expression "(0x2f < (int)uVar11)" (( "(") (binary_expression "0x2f < (int)uVar11" (number_literal "0x2f") (< "<") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) () ")")) (&& "&&") (parenthesized_expression "((int)uVar11 < (int)local_4c)" (( "(") (binary_expression "(int)uVar11 < (int)local_4c" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))) () ")"))) () ")")) (compound_statement "{\nLAB_003c883c:\n      uVar11 = uVar11 - 0x30;\nLAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }\n      if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }\n      goto LAB_003c8844;\n    }" ({ "{") (labeled_statement "LAB_003c883c:\n      uVar11 = uVar11 - 0x30;" (statement_identifier "LAB_003c883c") (: ":") (expression_statement "uVar11 = uVar11 - 0x30;" (assignment_expression "uVar11 = uVar11 - 0x30" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 0x30" (identifier "uVar11") (- "-") (number_literal "0x30"))) (; ";"))) (labeled_statement "LAB_003c8844:\n      local_50 = (uint)(uVar20 >> 0x20);" (statement_identifier "LAB_003c8844") (: ":") (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if (uVar20 < CONCAT44(uVar5,local_54)) {\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }\n      else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" (if "if") (parenthesized_expression "(uVar20 < CONCAT44(uVar5,local_54))" (( "(") (binary_expression "uVar20 < CONCAT44(uVar5,local_54)" (identifier "uVar20") (< "<") (call_expression "CONCAT44(uVar5,local_54)" (identifier "CONCAT44") (argument_list "(uVar5,local_54)" (( "(") (identifier "uVar5") (, ",") (identifier "local_54") () ")")))) () ")")) (compound_statement "{\n        local_58 = 1;\n        uVar16 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;\nLAB_003c88e4:\n        local_res8[2] = uVar16 + 1;\nLAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar16 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        if (param_5 == (int *)0x0) goto LAB_003c8b8c;\nLAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }\n        if (uVar11 == uVar16) goto LAB_003c8924;\n      }" ({ "{") (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (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 ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;" (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_003c8b5c;" (goto "goto") (statement_identifier "LAB_003c8b5c") (; ";"))) (labeled_statement "LAB_003c88e4:\n        local_res8[2] = uVar16 + 1;" (statement_identifier "LAB_003c88e4") (: ":") (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_003c88f0:\n        local_50 = (uint)(uVar20 >> 0x20);" (statement_identifier "LAB_003c88f0") (: ":") (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" (if "if") (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" (( "(") (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)local_res8[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" ({ "{") (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar8") (= "=") (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            uVar16 = 1;\n            local_res8 = (int *)0x0;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" ({ "{") (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c8b8c;" (if "if") (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"))) () ")")) (goto_statement "goto LAB_003c8b8c;" (goto "goto") (statement_identifier "LAB_003c8b8c") (; ";"))) (labeled_statement "LAB_003c8910:\n        local_50 = (uint)(uVar20 >> 0x20);" (statement_identifier "LAB_003c8910") (: ":") (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if (param_6 == -1) {\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }\n        else {\n          uVar11 = 0;\n        }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar11 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }\n        }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" (if "if") (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" (( "(") (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar11 = (uint)(iVar8 == -1);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n          }" ({ "{") (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar8") (= "=") (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 "uVar11 = (uint)(iVar8 == -1);" (assignment_expression "uVar11 = (uint)(iVar8 == -1)" (identifier "uVar11") (= "=") (call_expression "(uint)(iVar8 == -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\n            }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n          uVar11 = 0;\n        }" (else "else") (compound_statement "{\n          uVar11 = 0;\n        }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (uVar11 == uVar16) goto LAB_003c8924;" (if "if") (parenthesized_expression "(uVar11 == uVar16)" (( "(") (binary_expression "uVar11 == uVar16" (identifier "uVar11") (== "==") (identifier "uVar16")) () ")")) (goto_statement "goto LAB_003c8924;" (goto "goto") (statement_identifier "LAB_003c8924") (; ";"))) (} "}")) (else_clause "else {\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" (else "else") (compound_statement "{\n        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n        uVar17 = ~((int)uVar11 >> 0x1f);\n        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n        uVar16 = 1;\n        if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }\n        local_54 = uVar11 + uVar18;\n        local_58 = local_58 & 0xff | uVar16;\n        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;\n        uVar16 = local_res8[2];\n        iVar3 = iVar3 + 1;\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;\nLAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar16 = 1;\n        local_resc = 0xffffffff;\n        if (local_res8 != (int *)0x0) goto LAB_003c88f0;\n        if (param_5 != (int *)0x0) goto LAB_003c8910;\nLAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }\n      }" ({ "{") (expression_statement "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" (identifier "uVar18") (= "=") (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" (( "(") (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar4")) (* "*") (cast_expression "(ulonglong)local_54" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_54"))) () ")")))) (; ";")) (expression_statement "uVar17 = ~((int)uVar11 >> 0x1f);" (assignment_expression "uVar17 = ~((int)uVar11 >> 0x1f)" (identifier "uVar17") (= "=") (unary_expression "~((int)uVar11 >> 0x1f)" (~ "~") (parenthesized_expression "((int)uVar11 >> 0x1f)" (( "(") (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (identifier "uVar5") (= "=") (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" (identifier "uVar5") (* "*") (identifier "uVar4")) (+ "+") (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar4")) (* "*") (cast_expression "(ulonglong)local_54" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_54"))) (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar5 <= uVar17) {\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(uVar5 <= uVar17)" (( "(") (binary_expression "uVar5 <= uVar17" (identifier "uVar5") (<= "<=") (identifier "uVar17")) () ")")) (compound_statement "{\n          if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }\n        }" ({ "{") (if_statement "if (uVar5 == uVar17) {\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }\n          else {\n            uVar16 = 0;\n          }" (if "if") (parenthesized_expression "(uVar5 == uVar17)" (( "(") (binary_expression "uVar5 == uVar17" (identifier "uVar5") (== "==") (identifier "uVar17")) () ")")) (compound_statement "{\n            if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }\n          }" ({ "{") (if_statement "if (uVar18 <= ~uVar11) {\n              uVar16 = 0;\n            }" (if "if") (parenthesized_expression "(uVar18 <= ~uVar11)" (( "(") (binary_expression "uVar18 <= ~uVar11" (identifier "uVar18") (<= "<=") (unary_expression "~uVar11" (~ "~") (identifier "uVar11"))) () ")")) (compound_statement "{\n              uVar16 = 0;\n            }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            uVar16 = 0;\n          }" (else "else") (compound_statement "{\n            uVar16 = 0;\n          }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_54 = uVar11 + uVar18;" (assignment_expression "local_54 = uVar11 + uVar18" (identifier "local_54") (= "=") (binary_expression "uVar11 + uVar18" (identifier "uVar11") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "local_58 = local_58 & 0xff | uVar16;" (assignment_expression "local_58 = local_58 & 0xff | uVar16" (identifier "local_58") (= "=") (binary_expression "local_58 & 0xff | uVar16" (binary_expression "local_58 & 0xff" (identifier "local_58") (& "&") (number_literal "0xff")) (| "|") (identifier "uVar16"))) (; ";")) (expression_statement "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" (identifier "uVar5") (= "=") (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f)" (call_expression "(uint)(local_54 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < uVar11)" (( "(") (binary_expression "local_54 < uVar11" (identifier "local_54") (< "<") (identifier "uVar11")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar11 >> 0x1f)" (( "(") (binary_expression "(int)uVar11 >> 0x1f" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (identifier "uVar5"))) (; ";")) (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 "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;" (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_003c88e4;" (goto "goto") (statement_identifier "LAB_003c88e4") (; ";"))) (labeled_statement "LAB_003c8b5c:\n        (**(code **)(*local_res8 + 0x28))();" (statement_identifier "LAB_003c8b5c") (: ":") (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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c88f0;" (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"))) () ")")) (goto_statement "goto LAB_003c88f0;" (goto "goto") (statement_identifier "LAB_003c88f0") (; ";"))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c8910;" (if "if") (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"))) () ")")) (goto_statement "goto LAB_003c8910;" (goto "goto") (statement_identifier "LAB_003c8910") (; ";"))) (labeled_statement "LAB_003c8b8c:\n        if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" (statement_identifier "LAB_003c8b8c") (: ":") (if_statement "if (local_48 == uVar16) {\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" (if "if") (parenthesized_expression "(local_48 == uVar16)" (( "(") (binary_expression "local_48 == uVar16" (identifier "local_48") (== "==") (identifier "uVar16")) () ")")) (compound_statement "{\nLAB_003c8924:\n          uVar16 = 1;\n          goto LAB_003c8928;\n        }" ({ "{") (labeled_statement "LAB_003c8924:\n          uVar16 = 1;" (statement_identifier "LAB_003c8924") (: ":") (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_003c8928;" (goto "goto") (statement_identifier "LAB_003c8928") (; ";")) (} "}")))) (} "}")))) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }\n      else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" (( "(") (binary_expression "local_resc != 0xffffffff" (identifier "local_resc") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n        uVar11 = (uint)(char)local_resc;\n        uVar16 = local_resc;\n        if (bVar10) goto LAB_003c8824;\nLAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;\n        if (uVar16 - 0x30 < 10) goto LAB_003c883c;\n      }" ({ "{") (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)local_resc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)local_resc" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_resc")))) (; ";")) (expression_statement "uVar16 = local_resc;" (assignment_expression "uVar16 = local_resc" (identifier "uVar16") (= "=") (identifier "local_resc")) (; ";")) (if_statement "if (bVar10) goto LAB_003c8824;" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (goto_statement "goto LAB_003c8824;" (goto "goto") (statement_identifier "LAB_003c8824") (; ";"))) (labeled_statement "LAB_003c8bb8:\n        uVar16 = uVar16 & 0xff;" (statement_identifier "LAB_003c8bb8") (: ":") (expression_statement "uVar16 = uVar16 & 0xff;" (assignment_expression "uVar16 = uVar16 & 0xff" (identifier "uVar16") (= "=") (binary_expression "uVar16 & 0xff" (identifier "uVar16") (& "&") (number_literal "0xff"))) (; ";"))) (if_statement "if (uVar16 - 0x30 < 10) goto LAB_003c883c;" (if "if") (parenthesized_expression "(uVar16 - 0x30 < 10)" (( "(") (binary_expression "uVar16 - 0x30 < 10" (binary_expression "uVar16 - 0x30" (identifier "uVar16") (- "-") (number_literal "0x30")) (< "<") (number_literal "10")) () ")")) (goto_statement "goto LAB_003c883c;" (goto "goto") (statement_identifier "LAB_003c883c") (; ";"))) (} "}")) (else_clause "else {\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" (else "else") (compound_statement "{\n        if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }\n                    \n        iVar8 = (**(code **)(*local_res8 + 0x24))();\n        uVar20 = CONCAT44(local_50,local_44);\n        uVar11 = (uint)(char)iVar8;\n        if (iVar8 != -1) goto LAB_003c881c;\n        local_res8 = (int *)0x0;\n        if (bVar10) goto LAB_003c8bf4;\n        uVar16 = 0xff;\n        uVar11 = 0xffffffff;\n      }" ({ "{") (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" (if "if") (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" (( "(") (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(char *)local_res8[3]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n          goto LAB_003c881c;\n        }" ({ "{") (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" (identifier "uVar11") (= "=") (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (goto_statement "goto LAB_003c881c;" (goto "goto") (statement_identifier "LAB_003c881c") (; ";")) (} "}"))) (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar8") (= "=") (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)iVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)iVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar8")))) (; ";")) (if_statement "if (iVar8 != -1) goto LAB_003c881c;" (if "if") (parenthesized_expression "(iVar8 != -1)" (( "(") (binary_expression "iVar8 != -1" (identifier "iVar8") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_003c881c;" (goto "goto") (statement_identifier "LAB_003c881c") (; ";"))) (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 (bVar10) goto LAB_003c8bf4;" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (goto_statement "goto LAB_003c8bf4;" (goto "goto") (statement_identifier "LAB_003c8bf4") (; ";"))) (expression_statement "uVar16 = 0xff;" (assignment_expression "uVar16 = 0xff" (identifier "uVar16") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (if_statement "if (uVar16 - 0x61 < 6) {\n        uVar11 = uVar11 - 0x57;\n      }\n      else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" (if "if") (parenthesized_expression "(uVar16 - 0x61 < 6)" (( "(") (binary_expression "uVar16 - 0x61 < 6" (binary_expression "uVar16 - 0x61" (identifier "uVar16") (- "-") (number_literal "0x61")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\n        uVar11 = uVar11 - 0x57;\n      }" ({ "{") (expression_statement "uVar11 = uVar11 - 0x57;" (assignment_expression "uVar11 = uVar11 - 0x57" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 0x57" (identifier "uVar11") (- "-") (number_literal "0x57"))) (; ";")) (} "}")) (else_clause "else {\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" (else "else") (compound_statement "{\n        uVar11 = uVar11 - 0x37;\n        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;\n      }" ({ "{") (expression_statement "uVar11 = uVar11 - 0x37;" (assignment_expression "uVar11 = uVar11 - 0x37" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 0x37" (identifier "uVar11") (- "-") (number_literal "0x37"))) (; ";")) (if_statement "if (5 < uVar16 - 0x41) goto LAB_003c8bf4;" (if "if") (parenthesized_expression "(5 < uVar16 - 0x41)" (( "(") (binary_expression "5 < uVar16 - 0x41" (number_literal "5") (< "<") (binary_expression "uVar16 - 0x41" (identifier "uVar16") (- "-") (number_literal "0x41"))) () ")")) (goto_statement "goto LAB_003c8bf4;" (goto "goto") (statement_identifier "LAB_003c8bf4") (; ";"))) (} "}")))) (goto_statement "goto LAB_003c8844;" (goto "goto") (statement_identifier "LAB_003c8844") (; ";")) (} "}")))) (labeled_statement "LAB_003c8bf4:\n    uVar16 = 0;" (statement_identifier "LAB_003c8bf4") (: ":") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_6c != 0) goto LAB_003c8c04;" (if "if") (parenthesized_expression "(local_6c != 0)" (( "(") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8c04;" (goto "goto") (statement_identifier "LAB_003c8c04") (; ";"))) (labeled_statement "LAB_003c8934:\n    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" (statement_identifier "LAB_003c8934") (: ":") (if_statement "if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;" (if "if") (parenthesized_expression "((iVar3 == 0) && (!bVar13))" (( "(") (binary_expression "(iVar3 == 0) && (!bVar13)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")"))) () ")")) (goto_statement "goto LAB_003c8944;" (goto "goto") (statement_identifier "LAB_003c8944") (; ";")))) (labeled_statement "LAB_003c8c80:\n    uVar4 = 0xffffffff;" (statement_identifier "LAB_003c8c80") (: ":") (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";"))) (if_statement "if (local_58 == 0) {\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" (if "if") (parenthesized_expression "(local_58 == 0)" (( "(") (binary_expression "local_58 == 0" (identifier "local_58") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }\n      *param_9 = uVar5;\n      param_9[1] = local_54;\n      goto LAB_003c8960;\n    }" ({ "{") (if_statement "if (local_38 != 0) {\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" (if "if") (parenthesized_expression "(local_38 != 0)" (( "(") (binary_expression "local_38 != 0" (identifier "local_38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_54 = -local_54;\n        uVar5 = -(uint)(local_54 != 0) - uVar5;\n      }" ({ "{") (expression_statement "local_54 = -local_54;" (assignment_expression "local_54 = -local_54" (identifier "local_54") (= "=") (unary_expression "-local_54" (- "-") (identifier "local_54"))) (; ";")) (expression_statement "uVar5 = -(uint)(local_54 != 0) - uVar5;" (assignment_expression "uVar5 = -(uint)(local_54 != 0) - uVar5" (identifier "uVar5") (= "=") (binary_expression "-(uint)(local_54 != 0) - uVar5" (unary_expression "-(uint)(local_54 != 0)" (- "-") (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")")))) (- "-") (identifier "uVar5"))) (; ";")) (} "}"))) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "param_9[1] = local_54;" (assignment_expression "param_9[1] = local_54" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_54")) (; ";")) (goto_statement "goto LAB_003c8960;" (goto "goto") (statement_identifier "LAB_003c8960") (; ";")) (} "}"))) (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else {\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" (else "else") (compound_statement "{\n    if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }\nLAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;\nLAB_003c8c04:\n    uVar15 = (undefined1)iVar3;\n    local_4c = 0;\nLAB_003c8c0c:\n    uVar4 = local_6c;\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    uVar17 = local_6c + 1;\n    uVar11 = local_68[0];\n    if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }\n    if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }\n    local_50 = (uint)(uVar20 >> 0x20);\n    local_44 = (uint)uVar20;\n    *(undefined1 *)((int)local_70 + uVar4) = uVar15;\n    *(undefined1 *)((int)local_70 + uVar17) = 0;\n    local_6c = uVar17;\n    iVar12 = std::__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);\n    uVar20 = CONCAT44(local_50,local_44);\n    if (iVar12 == 0) {\n      *param_8 = 4;\n    }\n    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;\nLAB_003c8944:\n    uVar4 = 0;\n    uVar11 = 0;\n  }" ({ "{") (if_statement "if (uVar16 == 0) {\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }\n    else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_58 = 0;\n      local_54 = 0;\n      local_2c = &local_70;\n      local_34 = (uint)(param_6 == -1);\n      local_3c = iVar12 + 0x4e;\nLAB_003c8e5c:\n      iVar8 = local_3c;\n      uVar16 = local_6c;\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      local_4c = (uint)*(byte *)(iVar12 + 0x10);\n      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }\n      uVar18 = local_34;\n      if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }\n      local_50 = (uint)(uVar20 >> 0x20);\n      local_44 = (uint)uVar20;\n      uVar16 = uVar17;\n      if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }\n    }" ({ "{") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = &local_70;" (assignment_expression "local_2c = &local_70" (identifier "local_2c") (= "=") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) (; ";")) (expression_statement "local_34 = (uint)(param_6 == -1);" (assignment_expression "local_34 = (uint)(param_6 == -1)" (identifier "local_34") (= "=") (call_expression "(uint)(param_6 == -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "local_3c = iVar12 + 0x4e;" (assignment_expression "local_3c = iVar12 + 0x4e" (identifier "local_3c") (= "=") (binary_expression "iVar12 + 0x4e" (identifier "iVar12") (+ "+") (number_literal "0x4e"))) (; ";")) (labeled_statement "LAB_003c8e5c:\n      iVar8 = local_3c;" (statement_identifier "LAB_003c8e5c") (: ":") (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" (identifier "iVar8") (= "=") (identifier "local_3c")) (; ";"))) (expression_statement "uVar16 = local_6c;" (assignment_expression "uVar16 = local_6c" (identifier "uVar16") (= "=") (identifier "local_6c")) (; ";")) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "local_4c = (uint)*(byte *)(iVar12 + 0x10);" (assignment_expression "local_4c = (uint)*(byte *)(iVar12 + 0x10)" (identifier "local_4c") (= "=") (binary_expression "(uint)*(byte *)(iVar12 + 0x10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar12 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" (if "if") (parenthesized_expression "((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11))" (( "(") (binary_expression "(local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)" (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)*(char *)(iVar12 + 0x25) != uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x25) != uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x25)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x25)" (* "*") (cast_expression "(char *)(iVar12 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x25)" (( "(") (binary_expression "iVar12 + 0x25" (identifier "iVar12") (+ "+") (number_literal "0x25")) () ")"))))) (!= "!=") (identifier "uVar11")) () ")"))) () ")")) (compound_statement "{\n        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;\n        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);\n        uVar20 = CONCAT44(local_50,local_44);\n        if (iVar6 == 0) goto LAB_003c8bf4;\n        uVar16 = iVar6 - iVar8;\n        if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }\n        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }\n        uVar16 = local_res8[2];\n        local_58 = uVar17;\n        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;\nLAB_003c8f50:\n        local_res8[2] = uVar16 + 1;\nLAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        local_resc = 0xffffffff;\n        uVar11 = 0;\n        if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n      }" ({ "{") (if_statement "if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;" (if "if") (parenthesized_expression "((int)*(char *)(iVar12 + 0x24) == uVar11)" (( "(") (binary_expression "(int)*(char *)(iVar12 + 0x24) == uVar11" (cast_expression "(int)*(char *)(iVar12 + 0x24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar12 + 0x24)" (* "*") (cast_expression "(char *)(iVar12 + 0x24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (== "==") (identifier "uVar11")) () ")")) (goto_statement "goto LAB_003c8bf4;" (goto "goto") (statement_identifier "LAB_003c8bf4") (; ";"))) (expression_statement "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48)" (parenthesized_expression "(*(code *)PTR_memchr_004c5ac8)" (( "(") (pointer_expression "*(code *)PTR_memchr_004c5ac8" (* "*") (cast_expression "(code *)PTR_memchr_004c5ac8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memchr_004c5ac8"))) () ")")) (argument_list "(local_3c,uVar11,local_48)" (( "(") (identifier "local_3c") (, ",") (identifier "uVar11") (, ",") (identifier "local_48") () ")")))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_003c8bf4;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8bf4;" (goto "goto") (statement_identifier "LAB_003c8bf4") (; ";"))) (expression_statement "uVar16 = iVar6 - iVar8;" (assignment_expression "uVar16 = iVar6 - iVar8" (identifier "uVar16") (= "=") (binary_expression "iVar6 - iVar8" (identifier "iVar6") (- "-") (identifier "iVar8"))) (; ";")) (if_statement "if (0xf < (int)uVar16) {\n          uVar16 = uVar16 - 6;\n        }" (if "if") (parenthesized_expression "(0xf < (int)uVar16)" (( "(") (binary_expression "0xf < (int)uVar16" (number_literal "0xf") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (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 ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" (if "if") (parenthesized_expression "((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44))))" (( "(") (binary_expression "(uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))" (parenthesized_expression "(uVar5 <= local_50)" (( "(") (binary_expression "uVar5 <= local_50" (identifier "uVar5") (<= "<=") (identifier "local_50")) () ")")) (&& "&&") (parenthesized_expression "((uVar5 != local_50 || (local_54 <= local_44)))" (( "(") (parenthesized_expression "(uVar5 != local_50 || (local_54 <= local_44))" (( "(") (binary_expression "uVar5 != local_50 || (local_54 <= local_44)" (binary_expression "uVar5 != local_50" (identifier "uVar5") (!= "!=") (identifier "local_50")) (|| "||") (parenthesized_expression "(local_54 <= local_44)" (( "(") (binary_expression "local_54 <= local_44" (identifier "local_54") (<= "<=") (identifier "local_44")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);\n          uVar18 = ~((int)uVar16 >> 0x1f);\n          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);\n          uVar11 = 1;\n          if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }\n          local_54 = uVar16 + uVar19;\n          local_58 = local_58 & 0xff | uVar11;\n          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;\n          iVar3 = iVar3 + 1;\n          goto LAB_003c8f38;\n        }" ({ "{") (expression_statement "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);" (assignment_expression "uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54)" (identifier "uVar19") (= "=") (call_expression "(uint)((ulonglong)uVar4 * (ulonglong)local_54)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar4 * (ulonglong)local_54)" (( "(") (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar4")) (* "*") (cast_expression "(ulonglong)local_54" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_54"))) () ")")))) (; ";")) (expression_statement "uVar18 = ~((int)uVar16 >> 0x1f);" (assignment_expression "uVar18 = ~((int)uVar16 >> 0x1f)" (identifier "uVar18") (= "=") (unary_expression "~((int)uVar16 >> 0x1f)" (~ "~") (parenthesized_expression "((int)uVar16 >> 0x1f)" (( "(") (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);" (assignment_expression "uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (identifier "uVar5") (= "=") (binary_expression "uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (binary_expression "uVar5 * uVar4" (identifier "uVar5") (* "*") (identifier "uVar4")) (+ "+") (cast_expression "(int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54 >> 0x20" (binary_expression "(ulonglong)uVar4 * (ulonglong)local_54" (cast_expression "(ulonglong)uVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar4")) (* "*") (cast_expression "(ulonglong)local_54" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_54"))) (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar5 <= uVar18) {\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(uVar5 <= uVar18)" (( "(") (binary_expression "uVar5 <= uVar18" (identifier "uVar5") (<= "<=") (identifier "uVar18")) () ")")) (compound_statement "{\n            if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }\n          }" ({ "{") (if_statement "if (uVar5 == uVar18) {\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }\n            else {\n              uVar11 = 0;\n            }" (if "if") (parenthesized_expression "(uVar5 == uVar18)" (( "(") (binary_expression "uVar5 == uVar18" (identifier "uVar5") (== "==") (identifier "uVar18")) () ")")) (compound_statement "{\n              if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }\n            }" ({ "{") (if_statement "if (uVar19 <= ~uVar16) {\n                uVar11 = 0;\n              }" (if "if") (parenthesized_expression "(uVar19 <= ~uVar16)" (( "(") (binary_expression "uVar19 <= ~uVar16" (identifier "uVar19") (<= "<=") (unary_expression "~uVar16" (~ "~") (identifier "uVar16"))) () ")")) (compound_statement "{\n                uVar11 = 0;\n              }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              uVar11 = 0;\n            }" (else "else") (compound_statement "{\n              uVar11 = 0;\n            }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_54 = uVar16 + uVar19;" (assignment_expression "local_54 = uVar16 + uVar19" (identifier "local_54") (= "=") (binary_expression "uVar16 + uVar19" (identifier "uVar16") (+ "+") (identifier "uVar19"))) (; ";")) (expression_statement "local_58 = local_58 & 0xff | uVar11;" (assignment_expression "local_58 = local_58 & 0xff | uVar11" (identifier "local_58") (= "=") (binary_expression "local_58 & 0xff | uVar11" (binary_expression "local_58 & 0xff" (identifier "local_58") (& "&") (number_literal "0xff")) (| "|") (identifier "uVar11"))) (; ";")) (expression_statement "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;" (assignment_expression "uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" (identifier "uVar5") (= "=") (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5" (binary_expression "(uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f)" (call_expression "(uint)(local_54 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < uVar16)" (( "(") (binary_expression "local_54 < uVar16" (identifier "local_54") (< "<") (identifier "uVar16")) () ")"))) (+ "+") (parenthesized_expression "((int)uVar16 >> 0x1f)" (( "(") (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_003c8f38;" (goto "goto") (statement_identifier "LAB_003c8f38") (; ";")) (} "}"))) (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_58 = uVar17;" (assignment_expression "local_58 = uVar17" (identifier "local_58") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;" (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_003c8fcc;" (goto "goto") (statement_identifier "LAB_003c8fcc") (; ";"))) (labeled_statement "LAB_003c8f50:\n        local_res8[2] = uVar16 + 1;" (statement_identifier "LAB_003c8f50") (: ":") (expression_statement "local_res8[2] = uVar16 + 1;" (assignment_expression "local_res8[2] = uVar16 + 1" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_003c8f5c:\n        local_50 = (uint)(uVar20 >> 0x20);" (statement_identifier "LAB_003c8f5c") (: ":") (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" (if "if") (parenthesized_expression "((uint)local_res8[3] <= (uint)local_res8[2])" (( "(") (binary_expression "(uint)local_res8[3] <= (uint)local_res8[2]" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)local_res8[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" ({ "{") (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar8") (= "=") (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = uVar17;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" (identifier "uVar11") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" (else "else") (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }\n        local_4c = (uint)(char)iVar3;\n        local_30 = local_6c + 1;\n        uVar11 = 0xf;\n        if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }\n        if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }\n        local_6c = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_70 + uVar16) = (char)local_4c;\n        *(undefined1 *)((int)local_70 + local_30) = 0;\nLAB_003c8f38:\n        uVar16 = local_res8[2];\n        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;\nLAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        (**(code **)(*local_res8 + 0x28))();\n        uVar20 = CONCAT44(local_50,local_44);\n        local_resc = 0xffffffff;\n        uVar11 = uVar17;\n        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;\n      }" ({ "{") (if_statement "if (iVar3 == 0) {\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }\n          uVar16 = 0;\n          uVar15 = 0;\n          goto LAB_003c8c0c;\n        }" ({ "{") (if_statement "if (local_6c == 0) {\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" (if "if") (parenthesized_expression "(local_6c == 0)" (( "(") (binary_expression "local_6c == 0" (identifier "local_6c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_9[1] = 0;\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c8978;\n          }" ({ "{") (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (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_003c8978;" (goto "goto") (statement_identifier "LAB_003c8978") (; ";")) (} "}"))) (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_003c8c0c;" (goto "goto") (statement_identifier "LAB_003c8c0c") (; ";")) (} "}"))) (expression_statement "local_4c = (uint)(char)iVar3;" (assignment_expression "local_4c = (uint)(char)iVar3" (identifier "local_4c") (= "=") (cast_expression "(uint)(char)iVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)iVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar3")))) (; ";")) (expression_statement "local_30 = local_6c + 1;" (assignment_expression "local_30 = local_6c + 1" (identifier "local_30") (= "=") (binary_expression "local_6c + 1" (identifier "local_6c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" (identifier "uVar11") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (local_70 != local_40) {\n          uVar11 = local_68[0];\n        }" (if "if") (parenthesized_expression "(local_70 != local_40)" (( "(") (binary_expression "local_70 != local_40" (identifier "local_70") (!= "!=") (identifier "local_40")) () ")")) (compound_statement "{\n          uVar11 = local_68[0];\n        }" ({ "{") (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" (identifier "uVar11") (= "=") (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar11 < local_6c + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" (if "if") (parenthesized_expression "(uVar11 < local_6c + 1)" (( "(") (binary_expression "uVar11 < local_6c + 1" (identifier "uVar11") (< "<") (binary_expression "local_6c + 1" (identifier "local_6c") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);\n          uVar20 = CONCAT44(local_50,local_44);\n        }" ({ "{") (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" (( "(") (pointer_expression "*(code *)PTR__M_mutate_004c2090" (* "*") (cast_expression "(code *)PTR__M_mutate_004c2090" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_mutate_004c2090"))) () ")")) (argument_list "(local_2c,local_6c,0,0,1)" (( "(") (identifier "local_2c") (, ",") (identifier "local_6c") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (} "}"))) (expression_statement "local_6c = local_30;" (assignment_expression "local_6c = local_30" (identifier "local_6c") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char *)((int)local_70 + uVar16) = (char)local_4c;" (assignment_expression "*(char *)((int)local_70 + uVar16) = (char)local_4c" (pointer_expression "*(char *)((int)local_70 + uVar16)" (* "*") (cast_expression "(char *)((int)local_70 + uVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + uVar16)" (( "(") (binary_expression "(int)local_70 + uVar16" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (identifier "uVar16")) () ")")))) (= "=") (cast_expression "(char)local_4c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "*(undefined1 *)((int)local_70 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + local_30)" (* "*") (cast_expression "(undefined1 *)((int)local_70 + local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + local_30)" (( "(") (binary_expression "(int)local_70 + local_30" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (identifier "local_30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_003c8f38:\n        uVar16 = local_res8[2];" (statement_identifier "LAB_003c8f38") (: ":") (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_003c8f50;" (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_003c8f50;" (goto "goto") (statement_identifier "LAB_003c8f50") (; ";"))) (labeled_statement "LAB_003c8fcc:\n        local_50 = (uint)(uVar20 >> 0x20);" (statement_identifier "LAB_003c8fcc") (: ":") (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (expression_statement "local_resc = 0xffffffff;" (assignment_expression "local_resc = 0xffffffff" (identifier "local_resc") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" (identifier "uVar11") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c8f5c;" (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"))) () ")")) (goto_statement "goto LAB_003c8f5c;" (goto "goto") (statement_identifier "LAB_003c8f5c") (; ";"))) (} "}")))) (expression_statement "uVar18 = local_34;" (assignment_expression "uVar18 = local_34" (identifier "uVar18") (= "=") (identifier "local_34")) (; ";")) (if_statement "if (param_5 != (int *)0x0) {\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" (if "if") (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"))) () ")")) (compound_statement "{\n        local_50 = (uint)(uVar20 >> 0x20);\n        local_44 = (uint)uVar20;\n        if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }\n      }" ({ "{") (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if (param_6 == -1) {\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }\n        else {\n          uVar18 = 0;\n        }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar18 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" (if "if") (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" (( "(") (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar20 = CONCAT44(local_50,local_44);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }\n          }" ({ "{") (expression_statement "iVar8 = (**(code **)(*param_5 + 0x24))(param_5);" (assignment_expression "iVar8 = (**(code **)(*param_5 + 0x24))(param_5)" (identifier "iVar8") (= "=") (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 "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\n            }\n            else {\n              uVar18 = 0;\n            }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar18 = uVar17;\n              uVar20 = CONCAT44(local_50,local_44);\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 "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" (identifier "uVar18") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              uVar18 = 0;\n            }" (else "else") (compound_statement "{\n              uVar18 = 0;\n            }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n          uVar18 = 0;\n        }" (else "else") (compound_statement "{\n          uVar18 = 0;\n        }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" (identifier "uVar16") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar11 != uVar18) {\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" (if "if") (parenthesized_expression "(uVar11 != uVar18)" (( "(") (binary_expression "uVar11 != uVar18" (identifier "uVar11") (!= "!=") (identifier "uVar18")) () ")")) (compound_statement "{\n        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }\n        goto LAB_003c8e5c;\n      }" ({ "{") (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {\n          uVar11 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != 0xffffffff))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != 0xffffffff)" (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 != 0xffffffff)" (( "(") (binary_expression "local_resc != 0xffffffff" (identifier "local_resc") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n          uVar11 = (uint)(char)local_resc;\n        }" ({ "{") (expression_statement "uVar11 = (uint)(char)local_resc;" (assignment_expression "uVar11 = (uint)(char)local_resc" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)local_resc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)local_resc" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_resc")))) (; ";")) (} "}")) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" (else "else") (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar11 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" (if "if") (parenthesized_expression "((char *)local_res8[2] < (char *)local_res8[3])" (( "(") (binary_expression "(char *)local_res8[2] < (char *)local_res8[3]" (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(char *)local_res8[3]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          uVar11 = (uint)*(char *)local_res8[2];\n        }" ({ "{") (expression_statement "uVar11 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar11 = (uint)*(char *)local_res8[2]" (identifier "uVar11") (= "=") (binary_expression "(uint)*(char *)local_res8[2]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)local_res8[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" (else "else") (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar11 = (uint)(char)iVar8;\n          uVar20 = CONCAT44(local_50,local_44);\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }\n        }" ({ "{") (expression_statement "iVar8 = (**(code **)(*local_res8 + 0x24))();" (assignment_expression "iVar8 = (**(code **)(*local_res8 + 0x24))()" (identifier "iVar8") (= "=") (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar11 = (uint)(char)iVar8;" (assignment_expression "uVar11 = (uint)(char)iVar8" (identifier "uVar11") (= "=") (cast_expression "(uint)(char)iVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)iVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar8")))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\n          }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar11 = 0xffffffff;\n            uVar20 = CONCAT44(local_50,local_44);\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 "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (} "}"))) (} "}")))))) (goto_statement "goto LAB_003c8e5c;" (goto "goto") (statement_identifier "LAB_003c8e5c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" (else "else") (compound_statement "{\n      local_54 = 0;\n      uVar5 = 0;\n      local_58 = 0;\n    }" ({ "{") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_003c8928:\n    if (local_6c == 0) goto LAB_003c8934;" (statement_identifier "LAB_003c8928") (: ":") (if_statement "if (local_6c == 0) goto LAB_003c8934;" (if "if") (parenthesized_expression "(local_6c == 0)" (( "(") (binary_expression "local_6c == 0" (identifier "local_6c") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8934;" (goto "goto") (statement_identifier "LAB_003c8934") (; ";")))) (labeled_statement "LAB_003c8c04:\n    uVar15 = (undefined1)iVar3;" (statement_identifier "LAB_003c8c04") (: ":") (expression_statement "uVar15 = (undefined1)iVar3;" (assignment_expression "uVar15 = (undefined1)iVar3" (identifier "uVar15") (= "=") (cast_expression "(undefined1)iVar3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar3"))) (; ";"))) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_003c8c0c:\n    uVar4 = local_6c;" (statement_identifier "LAB_003c8c0c") (: ":") (expression_statement "uVar4 = local_6c;" (assignment_expression "uVar4 = local_6c" (identifier "uVar4") (= "=") (identifier "local_6c")) (; ";"))) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "uVar17 = local_6c + 1;" (assignment_expression "uVar17 = local_6c + 1" (identifier "uVar17") (= "=") (binary_expression "local_6c + 1" (identifier "local_6c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = local_68[0];" (assignment_expression "uVar11 = local_68[0]" (identifier "uVar11") (= "=") (subscript_expression "local_68[0]" (identifier "local_68") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (local_70 == local_40) {\n      uVar11 = 0xf;\n    }" (if "if") (parenthesized_expression "(local_70 == local_40)" (( "(") (binary_expression "local_70 == local_40" (identifier "local_70") (== "==") (identifier "local_40")) () ")")) (compound_statement "{\n      uVar11 = 0xf;\n    }" ({ "{") (expression_statement "uVar11 = 0xf;" (assignment_expression "uVar11 = 0xf" (identifier "uVar11") (= "=") (number_literal "0xf")) (; ";")) (} "}"))) (if_statement "if (uVar11 < uVar17) {\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" (if "if") (parenthesized_expression "(uVar11 < uVar17)" (( "(") (binary_expression "uVar11 < uVar17" (identifier "uVar11") (< "<") (identifier "uVar17")) () ")")) (compound_statement "{\n      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);\n      uVar20 = CONCAT44(local_50,local_44);\n    }" ({ "{") (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1)" (parenthesized_expression "(*(code *)PTR__M_mutate_004c2090)" (( "(") (pointer_expression "*(code *)PTR__M_mutate_004c2090" (* "*") (cast_expression "(code *)PTR__M_mutate_004c2090" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_mutate_004c2090"))) () ")")) (argument_list "((string *)&local_70,local_6c,0,0,1)" (( "(") (cast_expression "(string *)&local_70" (( "(") (type_descriptor "string *" (type_identifier "string") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) (, ",") (identifier "local_6c") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (} "}"))) (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "*(undefined1 *)((int)local_70 + uVar4) = uVar15;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar4) = uVar15" (pointer_expression "*(undefined1 *)((int)local_70 + uVar4)" (* "*") (cast_expression "(undefined1 *)((int)local_70 + uVar4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + uVar4)" (( "(") (binary_expression "(int)local_70 + uVar4" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (identifier "uVar4")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(undefined1 *)((int)local_70 + uVar17) = 0;" (assignment_expression "*(undefined1 *)((int)local_70 + uVar17) = 0" (pointer_expression "*(undefined1 *)((int)local_70 + uVar17)" (* "*") (cast_expression "(undefined1 *)((int)local_70 + uVar17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_70 + uVar17)" (( "(") (binary_expression "(int)local_70 + uVar17" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (+ "+") (identifier "uVar17")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = uVar17;" (assignment_expression "local_6c = uVar17" (identifier "local_6c") (= "=") (identifier "uVar17")) (; ";")) (ERROR "iVar12 = std::" (assignment_expression "iVar12 = std" (identifier "iVar12") (= "=") (identifier "std")) (: ":") (: ":")) (expression_statement "__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);" (call_expression "__verify_grouping\n                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" (identifier "__verify_grouping") (argument_list "(*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70)" (( "(") (pointer_expression "*(char **)(iVar12 + 8)" (* "*") (cast_expression "(char **)(iVar12 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(uint *)(iVar12 + 0xc)" (* "*") (cast_expression "(uint *)(iVar12 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (cast_expression "(string *)&local_70" (( "(") (type_descriptor "string *" (type_identifier "string") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_70" (& "&") (identifier "local_70"))) () ")"))) (; ";")) (expression_statement "uVar20 = CONCAT44(local_50,local_44);" (assignment_expression "uVar20 = CONCAT44(local_50,local_44)" (identifier "uVar20") (= "=") (call_expression "CONCAT44(local_50,local_44)" (identifier "CONCAT44") (argument_list "(local_50,local_44)" (( "(") (identifier "local_50") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n      *param_8 = 4;\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (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 ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;" (if "if") (parenthesized_expression "((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0))" (( "(") (binary_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar13)) || (local_6c != 0))" (( "(") (binary_expression "((iVar3 != 0) || (bVar13)) || (local_6c != 0)" (parenthesized_expression "((iVar3 != 0) || (bVar13))" (( "(") (binary_expression "(iVar3 != 0) || (bVar13)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_6c != 0)" (( "(") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_003c8c80;" (goto "goto") (statement_identifier "LAB_003c8c80") (; ";"))) (labeled_statement "LAB_003c8944:\n    uVar4 = 0;" (statement_identifier "LAB_003c8944") (: ":") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "param_9[1] = uVar4;" (assignment_expression "param_9[1] = uVar4" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*param_9 = uVar11;" (assignment_expression "*param_9 = uVar11" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_003c8960:\n  if (uVar16 != 0) {\n    *param_8 = *param_8 | 2;\n  }" (statement_identifier "LAB_003c8960") (: ":") (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_003c8978:\n  local_50 = (uint)(uVar20 >> 0x20);" (statement_identifier "LAB_003c8978") (: ":") (expression_statement "local_50 = (uint)(uVar20 >> 0x20);" (assignment_expression "local_50 = (uint)(uVar20 >> 0x20)" (identifier "local_50") (= "=") (call_expression "(uint)(uVar20 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar20 >> 0x20)" (( "(") (binary_expression "uVar20 >> 0x20" (identifier "uVar20") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_44 = (uint)uVar20;" (assignment_expression "local_44 = (uint)uVar20" (identifier "local_44") (= "=") (cast_expression "(uint)uVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar20"))) (; ";")) (expression_statement "*param_1 = local_res8;" (assignment_expression "*param_1 = local_res8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (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_70 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_70 != local_40)" (( "(") (binary_expression "local_70 != local_40" (identifier "local_70") (!= "!=") (identifier "local_40")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (labeled_statement "LAB_003c93b4:\n  cVar9 = *(char *)(iVar12 + 0x10);" (statement_identifier "LAB_003c93b4") (: ":") (expression_statement "cVar9 = *(char *)(iVar12 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar12 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar12 + 0x10)" (* "*") (cast_expression "(char *)(iVar12 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto joined_r0x003c8b00;" (goto "goto") (statement_identifier "joined_r0x003c8b00") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) 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: (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: (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: (type_identifier) declarator: (pointer_declarator 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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 (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) (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))) (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: (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: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) right: (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))))))) (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: (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: (identifier))) consequence: (goto_statement label: (statement_identifier))))) 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))))) (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: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (false))) (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: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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: (false))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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))) (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))) (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: (compound_statement (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)))))) alternative: (else_clause (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: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (number_literal))) (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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: (false)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (false))) (do_statement body: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (assignment_expression left: (identifier) right: (number_literal)))) (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: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (true))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (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: (false))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) right: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))) (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (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: (compound_statement (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)))))) alternative: (else_clause (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: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (number_literal))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (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)))))))) condition: (parenthesized_expression (true))))) (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))) (labeled_statement label: (statement_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: (number_literal))))) (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))) (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: (char_literal (escape_sequence)))) consequence: (compound_statement (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: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (number_literal) (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: (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: (number_literal))) (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (character))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) consequence: (compound_statement (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))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))) (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))) 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)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 (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: (identifier))) (if_statement condition: (parenthesized_expression (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) 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: (binary_expression left: (parenthesized_expression (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: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (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 (identifier)) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) alternative: (else_clause (compound_statement (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))))) (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) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) 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 (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: (identifier) right: (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))) (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 (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: (pointer_expression argument: (identifier)))) (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))) (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) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))) 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)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (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 (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))) (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: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) alternative: (else_clause (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)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (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: (binary_expression left: (parenthesized_expression (identifier)) right: (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)))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))))))) (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))) (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) (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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 (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (identifier) (number_literal) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (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))) (ERROR (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (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))))) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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)) (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)))))

/* WARNING: Removing unreachable block (ram,0x003c8858) */

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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  char cVar9;
  int iVar8;
  bool bVar10;
  uint uVar11;
  int iVar12;
  bool bVar13;
  int *piVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  ulonglong uVar20;
  int *local_res8;
  uint local_resc;
  uint *local_70;
  uint local_6c;
  uint local_68 [4];
  uint local_58;
  uint local_54;
  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;
  uint **local_2c;
  
  local_res8 = param_3;
  local_resc = param_4;
  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);
  piVar14 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar12 = *piVar14;
  if (iVar12 == 0) {
                    /* try { // try from 003c9228 to 003c922f has its CatchHandler @ 003c9570 */
    puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x68);
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0;
    puVar2 = PTR__M_cache_004c2d40;
    puVar1 = PTR_vtable_004c13b0;
    *(undefined1 *)(puVar7 + 4) = 0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    *puVar7 = puVar1 + 8;
    puVar7[7] = 0;
    puVar7[8] = 0;
    *(undefined2 *)(puVar7 + 9) = 0;
                    /* try { // try from 003c9274 to 003c927b has its CatchHandler @ 003c9540 */
    *(undefined1 *)(puVar7 + 0x19) = 0;
    (*(code *)puVar2)(puVar7,param_7 + 0x6c);
    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);
    iVar12 = *piVar14;
  }
  uVar16 = *(uint *)(param_7 + 0xc) & 0x4a;
  if (uVar16 == 0x40) {
    uVar4 = 8;
    if (local_res8 == (int *)0x0) goto LAB_003c90b4;
LAB_003c86b4:
    if (local_resc == 0xffffffff) {
      bVar13 = false;
      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {
        local_res8 = (int *)0x0;
        bVar13 = true;
      }
    }
    else {
      bVar13 = false;
    }
    if (param_5 != (int *)0x0) goto LAB_003c86cc;
LAB_003c90c4:
    if ((param_6 == -1) == bVar13) goto LAB_003c90d0;
  }
  else {
    uVar4 = 10;
    if (uVar16 == 8) {
      uVar4 = 0x10;
    }
    if (local_res8 != (int *)0x0) goto LAB_003c86b4;
LAB_003c90b4:
    bVar13 = local_resc == 0xffffffff;
    if (param_5 == (int *)0x0) goto LAB_003c90c4;
LAB_003c86cc:
    if (param_6 == -1) {
      bVar10 = false;
      if ((uint)param_5[3] <= (uint)param_5[2]) {
        iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
        bVar10 = iVar3 == -1;
        if (iVar3 == -1) {
          param_5 = (int *)0x0;
        }
      }
    }
    else {
      bVar10 = false;
    }
    if (bVar10 == bVar13) {
LAB_003c90d0:
      cVar9 = *(char *)(iVar12 + 0x10);
      uVar16 = 1;
      local_38 = 0;
      uVar11 = 0;
      iVar3 = 0;
      bVar13 = false;
      goto joined_r0x003c8b00;
    }
  }
  if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
    uVar11 = (uint)(char)local_resc;
  }
  else if ((char *)local_res8[2] < (char *)local_res8[3]) {
    uVar11 = (uint)*(char *)local_res8[2];
  }
  else {
    iVar3 = (**(code **)(*local_res8 + 0x24))();
    if (iVar3 == -1) {
      uVar11 = 0xffffffff;
      local_res8 = (int *)0x0;
    }
    else {
      uVar11 = (uint)(char)iVar3;
    }
  }
  cVar9 = *(char *)(iVar12 + 0x10);
  local_38 = (uint)((int)*(char *)(iVar12 + 0x4a) == uVar11);
  if (((int)*(char *)(iVar12 + 0x4a) != uVar11) && ((int)*(char *)(iVar12 + 0x4b) != uVar11)) {
    local_38 = 0;
    goto LAB_003c8a14;
  }
  if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||
     ((int)*(char *)(iVar12 + 0x24) == uVar11)) goto LAB_003c8a14;
  if ((uint)local_res8[2] < (uint)local_res8[3]) {
    local_res8[2] = local_res8[2] + 1;
    uVar5 = local_res8[2];
LAB_003c8768:
    local_resc = 0xffffffff;
    bVar13 = false;
    if (((uint)local_res8[3] <= uVar5) && (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)
       ) {
      bVar13 = true;
      local_res8 = (int *)0x0;
    }
  }
  else {
    bVar13 = true;
    (**(code **)(*local_res8 + 0x28))();
    local_resc = 0xffffffff;
    if (local_res8 != (int *)0x0) {
      uVar5 = local_res8[2];
      goto LAB_003c8768;
    }
  }
  if (param_5 == (int *)0x0) {
    bVar10 = param_6 == -1;
  }
  else if (param_6 == -1) {
    bVar10 = false;
    if ((uint)param_5[3] <= (uint)param_5[2]) {
      iVar3 = (**(code **)(*param_5 + 0x24))(param_5);
      bVar10 = iVar3 == -1;
      if (iVar3 == -1) {
        param_5 = (int *)0x0;
      }
    }
  }
  else {
    bVar10 = false;
  }
  if (bVar10 != bVar13) {
    cVar9 = FUN_003c05e4(&local_res8,local_resc);
    uVar11 = (uint)cVar9;
    cVar9 = *(char *)(iVar12 + 0x10);
LAB_003c8a14:
    iVar3 = 0;
    local_58 = (uint)(param_6 == -1);
    bVar13 = false;
    do {
      if (((cVar9 != '\0') && ((int)*(char *)(iVar12 + 0x25) == uVar11)) ||
         ((int)*(char *)(iVar12 + 0x24) == uVar11)) {
LAB_003c8e28:
        uVar16 = 0;
        goto joined_r0x003c8b00;
      }
      if ((int)*(char *)(iVar12 + 0x4e) == uVar11) {
        if (bVar13) {
          if (uVar4 != 10) goto LAB_003c8a60;
          if (uVar16 == 0) {
            iVar3 = 0;
            uVar4 = 8;
          }
          else {
LAB_003c8db8:
            iVar3 = iVar3 + 1;
            bVar13 = true;
          }
        }
        else {
          bVar13 = true;
          if (uVar16 == 0) {
            iVar3 = 0;
            uVar4 = 8;
          }
          else {
            if (uVar4 != 8) goto LAB_003c8db8;
            iVar3 = 0;
            bVar13 = true;
          }
        }
LAB_003c8a94:
        uVar5 = local_res8[2];
        if (uVar5 < (uint)local_res8[3]) goto LAB_003c8aac;
LAB_003c8cb0:
        uVar5 = 1;
        (**(code **)(*local_res8 + 0x28))();
        local_resc = 0xffffffff;
        if (local_res8 != (int *)0x0) goto LAB_003c8abc;
        if (param_5 != (int *)0x0) goto LAB_003c8adc;
LAB_003c8cdc:
        if (local_58 == uVar5) {
LAB_003c8af0:
          cVar9 = *(char *)(iVar12 + 0x10);
          uVar16 = 1;
          goto joined_r0x003c8b00;
        }
      }
      else {
        if (!bVar13) goto LAB_003c8e28;
LAB_003c8a60:
        if (((int)*(char *)(iVar12 + 0x4c) != uVar11) && ((int)*(char *)(iVar12 + 0x4d) != uVar11))
        {
          bVar13 = true;
          uVar16 = 0;
          goto joined_r0x003c8b00;
        }
        if (uVar16 != 0) {
          bVar13 = true;
          if (uVar4 == 0x10) {
            iVar3 = 0;
            bVar13 = false;
            goto LAB_003c8a94;
          }
          uVar16 = 0;
          local_48 = uVar4;
          goto joined_r0x003c87bc;
        }
        iVar3 = 0;
        bVar13 = false;
        uVar5 = local_res8[2];
        uVar4 = 0x10;
        if ((uint)local_res8[3] <= uVar5) goto LAB_003c8cb0;
LAB_003c8aac:
        local_res8[2] = uVar5 + 1;
LAB_003c8abc:
        local_resc = 0xffffffff;
        uVar5 = 0;
        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
          uVar5 = 1;
          local_res8 = (int *)0x0;
        }
        if (param_5 == (int *)0x0) goto LAB_003c8cdc;
LAB_003c8adc:
        if (param_6 == -1) {
          uVar17 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar17 = (uint)(iVar8 == -1);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
            }
          }
        }
        else {
          uVar17 = 0;
        }
        if (uVar17 == uVar5) goto LAB_003c8af0;
      }
      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
        uVar11 = (uint)(char)local_resc;
      }
      else if ((char *)local_res8[2] < (char *)local_res8[3]) {
        uVar11 = (uint)*(char *)local_res8[2];
      }
      else {
        iVar8 = (**(code **)(*local_res8 + 0x24))();
        if (iVar8 == -1) {
          uVar11 = 0xffffffff;
          local_res8 = (int *)0x0;
        }
        else {
          uVar11 = (uint)(char)iVar8;
        }
      }
      if (!bVar13) goto LAB_003c93b4;
      cVar9 = *(char *)(iVar12 + 0x10);
    } while( true );
  }
  cVar9 = *(char *)(iVar12 + 0x10);
  uVar16 = 1;
  iVar3 = 0;
  bVar13 = false;
joined_r0x003c8b00:
  local_48 = uVar4;
  if (uVar4 == 0x10) {
    local_48 = 0x16;
  }
joined_r0x003c87bc:
  local_68[0] = local_68[0] & 0xffffff;
  local_6c = 0;
  local_70 = local_68;
  local_40 = local_70;
  if (cVar9 != '\0') {
    local_70 = local_68;
    local_6c = 0;
    local_40 = local_70;
                    /* try { // try from 003c8b30 to 003c8b6b has its CatchHandler @ 003c9510 */
    (*(code *)PTR_reserve_004c2458)(&local_70,0x20);
  }
  uVar20 = FUN_003e7e30(0xffffffff,0xffffffff,0,uVar4);
  uVar17 = (uint)*(byte *)(iVar12 + 100);
  uVar5 = uVar16;
  if (uVar17 == 0) {
    if (uVar16 != 0) {
      local_58 = 0;
      uVar5 = 0;
      local_54 = 0;
      goto LAB_003c8928;
    }
    local_58 = 0;
    local_54 = 0;
    bVar10 = local_48 < 0xb;
    local_4c = (uint)(char)((char)local_48 + '0');
    local_48 = (uint)(param_6 == -1);
LAB_003c881c:
    uVar16 = uVar11;
    if (!bVar10) goto LAB_003c8bb8;
LAB_003c8824:
    if ((0x2f < (int)uVar11) && ((int)uVar11 < (int)local_4c)) {
LAB_003c883c:
      uVar11 = uVar11 - 0x30;
LAB_003c8844:
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      if (uVar20 < CONCAT44(uVar5,local_54)) {
        local_58 = 1;
        uVar16 = local_res8[2];
        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8b5c;
LAB_003c88e4:
        local_res8[2] = uVar16 + 1;
LAB_003c88f0:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        local_resc = 0xffffffff;
        uVar16 = 0;
        if ((uint)local_res8[3] <= (uint)local_res8[2]) {
                    /* try { // try from 003c92a8 to 003c931f has its CatchHandler @ 003c9510 */
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            uVar16 = 1;
            local_res8 = (int *)0x0;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
        if (param_5 == (int *)0x0) goto LAB_003c8b8c;
LAB_003c8910:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        if (param_6 == -1) {
          uVar11 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
                    /* try { // try from 003c8dec to 003c9027 has its CatchHandler @ 003c9510 */
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar11 = (uint)(iVar8 == -1);
            uVar20 = CONCAT44(local_50,local_44);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar20 = CONCAT44(local_50,local_44);
            }
          }
        }
        else {
          uVar11 = 0;
        }
        if (uVar11 == uVar16) goto LAB_003c8924;
      }
      else {
        uVar18 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);
        uVar17 = ~((int)uVar11 >> 0x1f);
        uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);
        uVar16 = 1;
        if (uVar5 <= uVar17) {
          if (uVar5 == uVar17) {
            if (uVar18 <= ~uVar11) {
              uVar16 = 0;
            }
          }
          else {
            uVar16 = 0;
          }
        }
        local_54 = uVar11 + uVar18;
        local_58 = local_58 & 0xff | uVar16;
        uVar5 = (uint)(local_54 < uVar11) + ((int)uVar11 >> 0x1f) + uVar5;
        uVar16 = local_res8[2];
        iVar3 = iVar3 + 1;
        if (uVar16 < (uint)local_res8[3]) goto LAB_003c88e4;
LAB_003c8b5c:
        (**(code **)(*local_res8 + 0x28))();
        uVar20 = CONCAT44(local_50,local_44);
        uVar16 = 1;
        local_resc = 0xffffffff;
        if (local_res8 != (int *)0x0) goto LAB_003c88f0;
        if (param_5 != (int *)0x0) goto LAB_003c8910;
LAB_003c8b8c:
        if (local_48 == uVar16) {
LAB_003c8924:
          uVar16 = 1;
          goto LAB_003c8928;
        }
      }
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
        uVar11 = (uint)(char)local_resc;
        uVar16 = local_resc;
        if (bVar10) goto LAB_003c8824;
LAB_003c8bb8:
        uVar16 = uVar16 & 0xff;
        if (uVar16 - 0x30 < 10) goto LAB_003c883c;
      }
      else {
        if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar11 = (uint)*(char *)local_res8[2];
          goto LAB_003c881c;
        }
                    /* try { // try from 003c93fc to 003c945f has its CatchHandler @ 003c9510 */
        iVar8 = (**(code **)(*local_res8 + 0x24))();
        uVar20 = CONCAT44(local_50,local_44);
        uVar11 = (uint)(char)iVar8;
        if (iVar8 != -1) goto LAB_003c881c;
        local_res8 = (int *)0x0;
        if (bVar10) goto LAB_003c8bf4;
        uVar16 = 0xff;
        uVar11 = 0xffffffff;
      }
      if (uVar16 - 0x61 < 6) {
        uVar11 = uVar11 - 0x57;
      }
      else {
        uVar11 = uVar11 - 0x37;
        if (5 < uVar16 - 0x41) goto LAB_003c8bf4;
      }
      goto LAB_003c8844;
    }
LAB_003c8bf4:
    uVar16 = 0;
    if (local_6c != 0) goto LAB_003c8c04;
LAB_003c8934:
    if ((iVar3 == 0) && (!bVar13)) goto LAB_003c8944;
LAB_003c8c80:
    uVar4 = 0xffffffff;
    if (local_58 == 0) {
      if (local_38 != 0) {
        local_54 = -local_54;
        uVar5 = -(uint)(local_54 != 0) - uVar5;
      }
      *param_9 = uVar5;
      param_9[1] = local_54;
      goto LAB_003c8960;
    }
    uVar11 = 0xffffffff;
  }
  else {
    if (uVar16 == 0) {
      local_58 = 0;
      local_54 = 0;
      local_2c = &local_70;
      local_34 = (uint)(param_6 == -1);
      local_3c = iVar12 + 0x4e;
LAB_003c8e5c:
      iVar8 = local_3c;
      uVar16 = local_6c;
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      local_4c = (uint)*(byte *)(iVar12 + 0x10);
      if ((local_4c == 0) || ((int)*(char *)(iVar12 + 0x25) != uVar11)) {
        if ((int)*(char *)(iVar12 + 0x24) == uVar11) goto LAB_003c8bf4;
        iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar11,local_48);
        uVar20 = CONCAT44(local_50,local_44);
        if (iVar6 == 0) goto LAB_003c8bf4;
        uVar16 = iVar6 - iVar8;
        if (0xf < (int)uVar16) {
          uVar16 = uVar16 - 6;
        }
        if ((uVar5 <= local_50) && ((uVar5 != local_50 || (local_54 <= local_44)))) {
          uVar19 = (uint)((ulonglong)uVar4 * (ulonglong)local_54);
          uVar18 = ~((int)uVar16 >> 0x1f);
          uVar5 = uVar5 * uVar4 + (int)((ulonglong)uVar4 * (ulonglong)local_54 >> 0x20);
          uVar11 = 1;
          if (uVar5 <= uVar18) {
            if (uVar5 == uVar18) {
              if (uVar19 <= ~uVar16) {
                uVar11 = 0;
              }
            }
            else {
              uVar11 = 0;
            }
          }
          local_54 = uVar16 + uVar19;
          local_58 = local_58 & 0xff | uVar11;
          uVar5 = (uint)(local_54 < uVar16) + ((int)uVar16 >> 0x1f) + uVar5;
          iVar3 = iVar3 + 1;
          goto LAB_003c8f38;
        }
        uVar16 = local_res8[2];
        local_58 = uVar17;
        if ((uint)local_res8[3] <= uVar16) goto LAB_003c8fcc;
LAB_003c8f50:
        local_res8[2] = uVar16 + 1;
LAB_003c8f5c:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        local_resc = 0xffffffff;
        uVar11 = 0;
        if ((uint)local_res8[3] <= (uint)local_res8[2]) {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar11 = uVar17;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
      }
      else {
        if (iVar3 == 0) {
          if (local_6c == 0) {
            param_9[1] = 0;
            *param_9 = 0;
            *param_8 = 4;
            goto LAB_003c8978;
          }
          uVar16 = 0;
          uVar15 = 0;
          goto LAB_003c8c0c;
        }
        local_4c = (uint)(char)iVar3;
        local_30 = local_6c + 1;
        uVar11 = 0xf;
        if (local_70 != local_40) {
          uVar11 = local_68[0];
        }
        if (uVar11 < local_6c + 1) {
          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_6c,0,0,1);
          uVar20 = CONCAT44(local_50,local_44);
        }
        local_6c = local_30;
        iVar3 = 0;
        *(char *)((int)local_70 + uVar16) = (char)local_4c;
        *(undefined1 *)((int)local_70 + local_30) = 0;
LAB_003c8f38:
        uVar16 = local_res8[2];
        if (uVar16 < (uint)local_res8[3]) goto LAB_003c8f50;
LAB_003c8fcc:
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        (**(code **)(*local_res8 + 0x28))();
        uVar20 = CONCAT44(local_50,local_44);
        local_resc = 0xffffffff;
        uVar11 = uVar17;
        if (local_res8 != (int *)0x0) goto LAB_003c8f5c;
      }
      uVar18 = local_34;
      if (param_5 != (int *)0x0) {
        local_50 = (uint)(uVar20 >> 0x20);
        local_44 = (uint)uVar20;
        if (param_6 == -1) {
          uVar18 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar20 = CONCAT44(local_50,local_44);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar18 = uVar17;
              uVar20 = CONCAT44(local_50,local_44);
            }
            else {
              uVar18 = 0;
            }
          }
        }
        else {
          uVar18 = 0;
        }
      }
      local_50 = (uint)(uVar20 >> 0x20);
      local_44 = (uint)uVar20;
      uVar16 = uVar17;
      if (uVar11 != uVar18) {
        if ((local_res8 == (int *)0x0) || (local_resc != 0xffffffff)) {
          uVar11 = (uint)(char)local_resc;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar11 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar11 = (uint)(char)iVar8;
          uVar20 = CONCAT44(local_50,local_44);
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar11 = 0xffffffff;
            uVar20 = CONCAT44(local_50,local_44);
          }
        }
        goto LAB_003c8e5c;
      }
    }
    else {
      local_54 = 0;
      uVar5 = 0;
      local_58 = 0;
    }
LAB_003c8928:
    if (local_6c == 0) goto LAB_003c8934;
LAB_003c8c04:
    uVar15 = (undefined1)iVar3;
    local_4c = 0;
LAB_003c8c0c:
    uVar4 = local_6c;
    local_50 = (uint)(uVar20 >> 0x20);
    local_44 = (uint)uVar20;
    uVar17 = local_6c + 1;
    uVar11 = local_68[0];
    if (local_70 == local_40) {
      uVar11 = 0xf;
    }
    if (uVar11 < uVar17) {
      (*(code *)PTR__M_mutate_004c2090)((string *)&local_70,local_6c,0,0,1);
      uVar20 = CONCAT44(local_50,local_44);
    }
    local_50 = (uint)(uVar20 >> 0x20);
    local_44 = (uint)uVar20;
    *(undefined1 *)((int)local_70 + uVar4) = uVar15;
    *(undefined1 *)((int)local_70 + uVar17) = 0;
    local_6c = uVar17;
    iVar12 = std::__verify_grouping
                       (*(char **)(iVar12 + 8),*(uint *)(iVar12 + 0xc),(string *)&local_70);
    uVar20 = CONCAT44(local_50,local_44);
    if (iVar12 == 0) {
      *param_8 = 4;
    }
    if ((((iVar3 != 0) || (bVar13)) || (local_6c != 0)) && (local_4c == 0)) goto LAB_003c8c80;
LAB_003c8944:
    uVar4 = 0;
    uVar11 = 0;
  }
  param_9[1] = uVar4;
  *param_9 = uVar11;
  *param_8 = 4;
LAB_003c8960:
  if (uVar16 != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_003c8978:
  local_50 = (uint)(uVar20 >> 0x20);
  local_44 = (uint)uVar20;
  *param_1 = local_res8;
  param_1[1] = local_resc;
  if (local_70 != local_40) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return param_1;
LAB_003c93b4:
  cVar9 = *(char *)(iVar12 + 0x10);
  uVar16 = 0;
  goto joined_r0x003c8b00;
}

